Docker image

The published Docker image includes ARC and RMG along with convenience entrypoints. Bind-mount your working directory and pass an input file path that exists inside the container. For best write access on bind mounts, pass your host UID/GID as PUID/PGID (the entrypoint remaps the mambauser account).

Platform support

The image is built for linux/amd64 only.

  • Linux (x86-64) – the platform the image is built and tested on.

  • macOS on Apple Silicon – Docker Desktop will run the image under qemu/Rosetta emulation. This is untested; expect a substantial slowdown, and be aware that some numerical dependencies may misbehave under emulation.

  • Windows – use Docker Desktop with the WSL2 backend. Untested.

No linux/arm64 image is published.

Run ARC non-interactively:

docker run --rm \
    -v "$PWD:/work" -w /work \
    -e PUID=$(id -u) -e PGID=$(id -g) \
    laxzal/arc:latest arc my_case/input.yml

Run RMG non-interactively:

docker run --rm \
    -v "$PWD:/work" -w /work \
    -e PUID=$(id -u) -e PGID=$(id -g) \
    laxzal/arc:latest rmg my_case/input.py

Manual RMG invocation:

docker run --rm \
    -v "$PWD:/work" -w /work \
    -e PUID=$(id -u) -e PGID=$(id -g) \
    laxzal/arc:latest \
    micromamba run -n rmg_env python /home/mambauser/Code/RMG-Py/rmg.py my_case/input.py

Manual ARC invocation:

docker run --rm \
    -v "$PWD:/work" -w /work \
    -e PUID=$(id -u) -e PGID=$(id -g) \
    laxzal/arc:latest \
    micromamba run -n arc_env python /home/mambauser/Code/ARC/ARC.py my_case/input.yml

Open an interactive shell:

docker run --rm -it \
    -v "$PWD:/work" -w /work \
    -e PUID=$(id -u) -e PGID=$(id -g) \
    laxzal/arc:latest

For job submission, the scheduler client tools must be available in the container or accessed via SSH on a remote host.

Aliases in interactive shells

An interactive shell starts with the arc_env environment already activated, and provides these shortcuts:

rc              # reload ~/.bashrc
rce, erc        # edit ~/.bashrc with nano

mamba, conda    # micromamba
deact           # micromamba deactivate

rmge, arce      # activate rmg_env / arc_env

rmgcode         # cd to /home/mambauser/Code/RMG-Py
dbcode          # cd to /home/mambauser/Code/RMG-database
arcode          # cd to /home/mambauser/Code/ARC

rmg [args] <input.py>     # run RMG in rmg_env    (default file: input.py)
arkane [args] <input.py>  # run Arkane in rmg_env (default file: input.py)
arc [args] <input.yml>    # run ARC in arc_env    (default file: input.yml)
arcrestart [args] [file]  # run ARC in arc_env    (default file: restart.yml)

The four job runners forward their arguments, so arc my_case/input.yml runs my_case/input.yml; with no arguments the default file shown above is used. They dispatch through the same entrypoint as docker run IMAGE arc <file>, so interactive and non-interactive invocations behave identically. Both streams are echoed to the terminal and appended to ./stdout.log and ./stderr.log.

Run aliases at any time to reprint this cheat-sheet; it also shows the branch and resolved commit SHA of ARC, RMG-Py and RMG-database baked into the image (also available in /home/mambauser/Code/image_versions.env and, for ARC, in the org.opencontainers.image.revision label).