Developing inside a container - DUNE-DAQ/daqconf GitHub Wiki
JCF, Dec-4-2024: You may need to have a computer with an Intel processor for this to work
If you wish to do your development in a docker container, you have two options: one is to use the image in which the nightly is built, and which contains a copy of /cvmfs
inside of it. Another is to use a base Alma 9 image and volume mount /cvmfs
into it. Each has its advantages and disadvantages; for example, the first option seems to work more reliably under more circumstances, but involves a much larger image than the second option. Note that one potential failure mode is to have a ~/.spack
directory set up by Spack in your home area, which can interfere with operations. To develop using the full nightly image out of their home directory, a user can execute the following on a system which has Docker available:
docker pull ghcr.io/dune-daq/nightly-release-alma9:development_v5 # Gets an image containing the most recent successful nightly release
docker run -it --name my-dev-container --volume $HOME:$HOME:shared -e HOME=$HOME --workdir $HOME ghcr.io/dune-daq/nightly-release-alma9:development_v5
and then once inside the container, you can develop normally, with the caveat that the only nightly available will be the one associated with the image. When you're done developing, you can exit out of the container, and if you want to pick up where you left off, you can use the standard Docker commands:
docker start my-dev-container
docker attach my-dev-container
Note, of course, that you can choose a different (and possibly better) name than my-dev-container
.
To use a simple Alma 9 image and volume mount /cvmfs
into it, a user can execute the following:
docker pull ghcr.io/dune-daq/alma9-spack
docker run -it --name my-dev-container --volume /cvmfs:/cvmfs:shared --volume $HOME:$HOME:shared -e HOME=$HOME --workdir $HOME ghcr.io/dune-daq/alma9-spack