-
Notifications
You must be signed in to change notification settings - Fork 2
Working with Docker
hdpm
uses Docker as a tool for packaging Linux binaries for CentOS 6/7 and Ubuntu 16.04 LTS. sim-recon and its dependencies are built inside a Docker container, starting from a Linux-distribution base image, and then the relevant binaries are extracted into a tarfile. The Dockerfiles and scripts used to carry this out are located in the "docker" directory.
Follow the instructions for your operating system at https://docs.docker.com/engine/installation/.
docker pull <repository>:<tag>
For convenience, tag the image by running
docker tag <repository>:<tag> sim-recon
The command for running a container can grow very long; it is useful to wrap it in a bash function. In the "docker" directory, there is a script called "shortcuts.sh". Make a directory to use for mounting data into a running container, and source the shortcuts script:
cd <path_to_hdpm>/docker && mkdir data
- Switch to a
bash
shell if needed. source shortcuts.sh
To run the software, precede the usual command with the bash function dock
. Multi-word commands must be enclosed in quotes. Move or copy any input-data and config. files into the "data" directory for mounting. Output files will be written to this directory as well.
dock "hd_root --config=parms.config hd_rawdata_003185_000.evio"
Docker can also be used as a tool for development of sim-recon. First, setup a directory with the source code to be developed and a Dockerfile for building it:
cd <path_to_hdpm>/docker/buildfiles && mkdir dev && cd dev
git clone https://github.com/JeffersonLab/sim-recon
cp -p ../centos7/Dockerfile .
- Insert the following lines below the FROM line in the Dockerfile in order to add your source code when building the image.
USER root ADD sim-recon sim-recon RUN chown -R gx:gx sim-recon USER gx
Update your local sim-recon directory, and then build it in a container by running
docker build -t sim-recon:dev .