Using Docker

Simpler and smaller image

Docker images are periodically updated which contain a working version of the code and examples. To use the images (available at the E4MMA docker repository), you can try, for example:

sudo docker pull awsteiner/e4mma:alpha5_o930a5_u24.04_min
sudo docker run --rm -p 8888:8888 -it awsteiner/e4mma:alpha5_o930a5_u24.04_min

Then, inside the docker image, you can either run the code directly:

/home/np3m/e4mma/eos_nuclei -help

or run the examples:

cd /home/np3m/e4mma/examples
./A_point_nuc.scr

Larger image with Python support

If you want to include Python support (at the expense of a larger image) use a different image:

sudo docker pull awsteiner/e4mma:alpha5_ju_o930a4_u24.04
sudo docker run --rm -p 8888:8888 -it awsteiner/e4mma:alpha5_ju_o930a4_u24.04

With this image you can start a Jupyter server:

source /home/np3m/e4mma/docker/start_server

and then you can start a Jupyter notebook using the link specified by the server log.

Transferring files with Docker images

If you want to transfer files between the docker container and your directory on the host machine, you can try a “bind mount”, e.g.:

sudo docker run -rm -p 8888:8888 --mount \
type=bind,source=/path/on/host,target=/home/np3m/e4mma/mounted_dir \
-it awsteiner/e4mma:alpha5_ju_o930a4_u24.04

To get more information about how bind mounts work in docker, see this page. Keep in mind, inside the container, you will need to use sudo to create or modify files in the bound directory (no superuser password is needed).