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
public:docker [2017-02-21 14:23] – [Development (extending the software)] Jan David Molpublic:docker [2018-06-07 06:52] (current) – [Development (extending the software)] Jan David Mol
Line 72: Line 72:
 === Q: I get "Illegal instruction" when running some of the software? === === Q: I get "Illegal instruction" when running some of the software? ===
  
-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, or [[#development_extending_the_software|rebuild the Docker images from scratch]].
  
 ===== Development (extending the software) ===== ===== Development (extending the software) =====
Line 83: Line 83:
 svn co -N https://svn.astron.nl/LOFAR/branches/LOFAR-Release-2_19/ svn co -N https://svn.astron.nl/LOFAR/branches/LOFAR-Release-2_19/
 cd LOFAR-Release-2_19 cd LOFAR-Release-2_19
 +svn up CMake
 mkdir -p build/gnu_opt && cd build/gnu_opt mkdir -p build/gnu_opt && cd build/gnu_opt
  
-cmake ../.. -DBUILD_PACKAGES=Docker -DUSE_LOG4CPLUS=OFF && make -j 16 install+cmake ../.. -DBUILD_PACKAGES=Docker -DUSE_LOG4CPLUS=OFF -DUSE_CASACORE=OFF && make -j 16 install
 </file> </file>
  
 which will put the Dockerfiles in subdirectories in ''LOFAR-Release-2_19/build/gnu_opt/installed/share/docker''. 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? === === Q: How do I add files/modifications permanently? ===
Line 100: Line 112:
 </file> </file>
  
-Finally, you run ''docker build -t myimage:mytag directory/'' 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.+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) === === Q: How do I add initialisation stuff? (PYTHONPATH, etc) ===
Line 106: Line 118:
 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''. 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.+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: 2017-02-21 14:23
  • by Jan David Mol