This repository contains the Dockerfiles for the official AiiDAlab docker image stack. All images are based on the jupyter/minimal-notebook.
Image variants:
base– A minimal image that comes with AiiDA pre-installed and an AiiDA profile set up.base-with-services– Likebase, but AiiDA services (PostgreSQL and RabbitMQ) are installed on the container and automatically launched on startup.lab– Likebase, but uses the AiiDAlab home app as the primary interface (the standard JupyterLab interface is also available).full-stack– Our most comprehensive image, likelab, but also comes with services pre-installed and launched.
Supported tags (released on Docker Hub):
edge– the latest commit on the default branch (main)latest– the latest regular releaseaiida-$AIIDA_VERSION– the latest regular release with that AiiDA version (ex.aiida-2.0.0)python-$PYTHON_VERSION– the latest regular release with that Python version (ex.python-3.9.13)$version– the version of a specific release (ex.2022.1001)
In addition, images are also released internally on the GitHub Container registry (ghcr.io).
Pull requests into the default branch are further released on ghcr.io with the pr-### tag to simplify the testing of development versions.
You can launch a container based on one of our published images directly with Docker, by executing for example the following command:
docker run -it -p 8888:8888 aiidalab/full-stackHowever, we recommend to use AiiDAlab Launch to run images locally for production environments.
Note: On recent versions of Mac OS-X you will have to select a different port, since port 8888 is already in use by one of the system services.
- Resetting the username and thus home directory location from the default (
jovyan) via theNB_USERenvironment variable is currently not supported (#297).
The repository uses the doit automation tool to automate tasks related to this repository, including building, testing, and locally deploying Docker images with docker-compose.
To use this system, setup a build end testing environment and install the dependencies with:
pip install -r requirements.txtTo build the images, run doit build (tested with docker buildx version v0.8.2).
The build system will attempt to detect the local architecture and automatically build images for it (tested with amd64 and arm64).
All commands build, tests, and up will use the locally detected platform and use a version tag based on the state of the local git repository.
However, you can also specify a custom platform or version with the --platform and --version parameters, example: doit build --arch=arm64 --version=my-version.
By default, all image variants are build. You can specify a single target image variant to build with -t/--target, example: doit build --target base.
To run tests, first build the images as described in the previous section.
Then run the automated tests for a given image with doit tests --target <base|base-with-services|lab|full-stack>.
Tip: The continuous integration workflow will build, release (at ghcr.io/aiidalab/*:pr-###), and test images for all pull requests into the default branch.
For manual testing, you can start the images with doit up --target full-stack, however we recommend to use aiidalab-launch to setup a production-ready local deployment.
Images are built for linux/amd64 and linux/arm64 during continuous integration for all pull requests into the default branch and pushed to the GitHub Container Registry (ghcr.io) with tags ghcr.io/aiidalab/*:pr-###.
You can run automated or manual tests against those images by specifying the registry and version for both the up and tests commands, example: doit tests --registry=ghcr.io/ --version=pr-123.
We use a calendar versioning scheme (e.g. v2022.1001), and we automate the release with bumpver. To create a release, make sure your are on an up-to-date main branch and run:
bumpver updateThis will update the version in bumpver.toml, make a commit, tag it, and then push both to the repository to kick off the build and release flow.
The aiidalab-launch tool provides a convenient and robust method of both launching and managing one or multiple AiiDAlab instances on your computer. To use it, simply install it via pipx
pipx install aiidalab-launchand then start AiiDAlab container with
aiidalab-launch startNote: AiiDAlab will keep running until you explicitly stop it with aiidalab-launch stop or shutdown/restart your computer.
Please see aiidalab-launch --help for a full list of available commands and options.
Please see the AiiDAlab documentation for information on how to use and deploy AiiDAlab docker images in alternative ways.
Users of AiiDAlab are kindly asked to cite the following publication in their own work:
A. V. Yakutovich et al., Comp. Mat. Sci. 188, 110165 (2021). DOI:10.1016/j.commatsci.2020.110165
This work is supported by the MARVEL National Centre for Competency in Research funded by the Swiss National Science Foundation, as well as by the MaX European Centre of Excellence funded by the Horizon 2020 EINFRA-5 program, Grant No. 676598.

