Images de conteneurs utilisés pour l'intégration continue

plmlab container registry

Lorsque l’on utilise des images de conteneurs dans l’intégration continue d’un projet, il est conseillé de les télécharger depuis un serveur proche du runner utilisé de façon à réduire les communications réseau. Une image de conteneurs a une taille de plusieurs centaines de Mégaoctets.
Concrètement, pour les projets hébergés sur plmlab et qui utilisent le runner partagé, il est conseillé de stocker les images dans le container registry du serveur plmlab afin de pouvoir les utiliser dans l’intégration continue.

Ceci permet aussi de contrôler les versions des exécutables contenus dans le container.

Pour cela il y a 2 possibilités :

  • télécharger depuis internet une image de container (par exemple depuis docker.io) et la stocker dans le registry de plmlab.math.cnrs.fr
  • créer un projet sur plmlab.math.cnrs.fr qui construit l’image du container dont on a besoin et la stocker dans le registry

Télécharger depuis internet une image de container et la stocker dans le registry de plmlab.math.cnrs.fr

Notre exemple récupère l’image “texlive/texlive:latest” sur docker.io et l’écrit dans le registry du projet “/doc/presentations/texlive”.

  1. Récupérer l’image sur docker.io : docker pull texlive/texlive:latest

  2. Téléverser cette image dans le registry de plmlab.math.cnrs.fr sur le projet “/doc/presentations/texlive”

    • on s’authentifie sur le registry de plmlab.math.cnrs.fr docker login -u mon_nom_d_utilisateur registry.plmlab.math.cnrs.fr:443
    • on ajoute un nom sur l’image docker image tag texlive/texlive:latest registry.plmlab.math.cnrs.fr:443/doc/presentations/texlive/texlive:2023
    • on transfert l’image sur le registry docker push registry.plmlab.math.cnrs.fr:443/doc/presentations/texlive/texlive:2023

Ensuite, pour utiliser cette image de container dans un script d’intégration continue :
Ajouter ceci dans le script .gitlab-ci.yml du projet

image: registry.plmlab.math.cnrs.fr:443/doc/presentations/texlive/texlive:2023