Containers allows to encapsulate code with their execution environment in a light and easy-to-use way. The envisaged scenario for LISA DDPC pipelines is to use containers to run code on arbitrary Data Computing Centers (DCC).
Some preliminary reference container images have been made available to the consortium, to allow developers to use a common environment, with fixed version of standard library like FFTW, LAL, GSL, etc.
Docker is one of the most popular containers solution.
Using DDPC docker images
DDPC docker files can be found in the LISA docker GitLab project: https://gitlab.in2p3.fr/elisadpc/docker/tree/master
Building your own docker image with GitLab
One can use the GitLab CI engine to automatically produce and update the docker image associated to a software project after each new commit.
To do so, one will have to add the
Dockerfile to the repository,
then tuned the
.gitlab-ci.yml configuration file, with the following
image: centos:latest image: gitlab-registry.in2p3.fr/my-git-project-url/my-project-name:latest variables: DOCKER_DRIVER: overlay2 CONTAINER_RELEASE_IMAGE: gitlab-registry.in2p3.fr/my-git-project-url/my-project-name:latest stages: - build build: image: docker:17.07 tags: - dind stage: build script: - export DOCKER_API_VERSION=1.23 - export IMAGE_TAG=$(echo -en $CI_BUILD_REF_NAME | tr -c '[:alnum:]_.-' '-') - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY - docker build --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" . - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG"
Singularity is a container solution for computing applications.
DDPC singularity files can be found in the LISA GitLab project: https://gitlab.in2p3.fr/elisadpc/singularity
Using DDPC Singularity images
A Singularity Hub is hosting a LISA collection of Singularity images