5 |Gromacs| project infrastructure uses Docker containerization to
6 isolate automated tasks.
7 A number of images are maintained to provide a breadth of testing coverage.
9 Scripts and configuration files for building images are stored in the repository
10 under :file:`admin/containers/`
11 Images are (re)built manually by |Gromacs| project staff and pushed to
13 See https://hub.docker.com/u/gromacs and https://gitlab.com/gromacs/gromacs/container_registry
15 GitLab Container Registry
16 =========================
18 CI Pipelines use a GitLab container registry instead of pulling from Docker Hub.
20 Project members with role ``Developer`` or higher privilege can
21 `push images <https://docs.gitlab.com/ee/user/packages/container_registry/index.html#build-and-push-images-by-using-docker-commands>`__
22 to the container registry.
26 1. Create a `personal access token <https://gitlab.com/-/profile/personal_access_tokens>`__ (`docs <https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html>`__)
27 with ``write_registry`` and ``read_registry`` scopes. Save the hash!
28 2. Authenticate from the command line with ``docker login registry.gitlab.com -u <user name> -p <hash>``
29 3. ``docker push registry.gitlab.com/gromacs/gromacs/<imagename>``
31 Refer to :file:`buildall.sh` in the ``master`` branch for the set of images
34 Within :doc:`pipeline jobs <gitlab>`, jobs specify a Docker image with the *image* property.
35 For image naming convention, see :py:func:`utility.image_name`.
36 Images from the GitLab registry
37 are easily accessible with the same identifier as above.
38 For portability, CI environment variables may be preferable for parts of the image identifier.
42 image: ${CI_REGISTRY_IMAGE}/ci-<configuration>
46 consider equivalent expressions ``${CI_REGISTRY}/${CI_PROJECT_PATH}``
47 or ``${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}``
48 Ref: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
56 .. automodule:: utility
59 :file:`scripted_gmx_docker_builds.py`
60 -------------------------------------
62 .. automodule:: scripted_gmx_docker_builds