public:docker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
public:docker [2017-02-09 12:41] – [Q&A] Jan David Molpublic:docker [2018-02-05 10:31] – [Development (extending the software)] Jan David Mol
Line 73: Line 73:
  
 A: The LOFAR software is compiled for a 2015-era processor (Intel Xeon E5-2603v3 to be exact) for performance reasons, and uses CPU instructions not available on older machines. Please run our images on a newer machine. A: The LOFAR software is compiled for a 2015-era processor (Intel Xeon E5-2603v3 to be exact) for performance reasons, and uses CPU instructions not available on older machines. Please run our images on a newer machine.
 +
 +===== Development (extending the software) =====
 +
 +=== Q: How do I obtain your Dockerfiles? ===
 +
 +A: By running:
 +
 +<file>
 +svn co -N https://svn.astron.nl/LOFAR/branches/LOFAR-Release-2_19/
 +cd LOFAR-Release-2_19
 +mkdir -p build/gnu_opt && cd build/gnu_opt
 +
 +cmake ../.. -DBUILD_PACKAGES=Docker -DUSE_LOG4CPLUS=OFF -DUSE_CASACORE=OFF && make -j 16 install
 +</file>
 +
 +which will put the Dockerfiles in subdirectories in ''LOFAR-Release-2_19/build/gnu_opt/installed/share/docker''.
 +
 +=== Q: How do I build your Docker images from scratch? ===
 +
 +A: By obtaining the Dockerfiles (see above), and running:
 +
 +<file>
 +# load LOFAR environment variables, used to determine tags etc
 +source installed/lofarinit.sh
 +# build all LOFAR images, in the order required by their interdependencies
 +docker-build-all.sh
 +</file>
 +
 +=== Q: How do I add files/modifications permanently? ===
 +
 +A: The best way to add stuff to our images is by creating a new image based on ours. To do so, create a directory containing the files you want to add. Add to this directory a ''Dockerfile'' that describes your extension, for example:
 +
 +<file>
 +FROM lofar-pipeline:LOFAR-Release-2_19
 +
 +COPY my_extension /opt/my_extension
 +</file>
 +
 +Finally, you run <file>docker build -t myimage:mytag directory/</file> where ''directory'' is the directory containing the Dockerfile, and ''myimage:mytag'' is the name and tag of your new image (instead of ''lofar-pipeline:LOFAR-Release-2_19''). See also the [[https://docs.docker.com/engine/reference/builder/|Docker manual]] on how to make and use Dockerfiles.
 +
 +=== Q: How do I add initialisation stuff? (PYTHONPATH, etc) ===
 +
 +A: Our Docker images execute ''/opt/bashrc'' upon entry, which in turn reads and sources all the files in ''/opt/bashrc.d/'' in order. You can thus add bash files to this directory that contain your initialisation statements, f.e. a file called ''20-myextension'' containing ''export PYTHONPATH=$PYTHONPATH:/opt/my_extension''.
 +
 +Note: if you add eggs to the image, you need to put the egg //filename// to the PYTHONPATH. It is not enough to add the directory containing the egg.
  • Last modified: 2018-06-07 06:52
  • by Jan David Mol