Due to the fragility of the combination of the Sphinx/Matlab/Octave ecosystems, we created a Docker image able to run the tests and compile the documentation.
The latest image can be pulled using the command:
docker pull replab/replab:latest
and the image can be run using the command:
docker run --user $(id -u):$(id -g) -e HOME=/workspace -v /PATH/TO/LOCAL/REPLAB/REPO:/workspace/replab -it replab/replab:latest
The image is created using the root
user, albeit giving full permissions to others inside the container; thus additional files can be created by the appropriate non-root user when running it.
The above command mounts the replab folder of the host machine into the container. Any change to this folder inside the container will thus be immediately reflected in the host filesystem.
The underlying Linux distribution is Ubuntu 18.04 LTS, so we can expect some stability from the packages managed by apt
. Concerning the Python packages, we pin their versions using pip-tools.
For this, the sphinx
subdirectory contains the file requirements.in
which lists the python packages we require. Whenever the latest dependencies form consistent python environment able to compile the documentation, the requirements.txt
file can be updated with the command:
pip-compile requirements.in > requirements.txt
to be run from the sphinx/
directory.