Outils pour utilisateurs

Outils du site


informatique:devops:registry-gitlab

Pour basculer d'un registre à un autre

Se connecter au registre source avec l'identifiant et le mot de passe fourni:

docker login registry.serveurSource.dev/cnrs/artefacts:latest

ou bien enregistrer un nouveau token pour un projet (cf. note en bas de cette page) :

docker --config ~/.mon-projet login registry.serveurSource.dev/cnrs/artefacts:latest -u project_id_from_gitlab -p token_RO_psw
# supprimer la ligne de l'historique … history -d <numéro de la ligne ds l'historique>
# au lieu de -p <token>, on peut déposer le mot de passe dans un fichier et le passer en préfixant la commande docker par //cat ~/my_password | docker … --password-stdin//
Un token Read_only est généralement généré pour le serveur en prod, ainsi on évite si le serveur est compromis que les images le soient éventuellement aussi ! Le rôle du token RO peut être guest mais ce rôle ne voit pas par défaut les registres, sinon il faut utiliser le rôle developer

Puis récupérer l'image:

docker pull registry.serveurSource.dev/cnrs/artefacts:<TAG_ID>

en remplaçant <TAG_ID> par le tag de l'image: v2, latest
ou si on a défini différents tokens (un par projet)

docker --config ~/.mon-projet pull registry.serveurSource.dev/cnrs/mon-registre/mon-projet:<TAG_ID>

Si on fait un

docker images
# on va avoir par exemple les noms           taille   tag_id    hash
registry.serveurSource.dev/cnrs/artefacts    792MB    v2        4e7a64a3b4d9 
registry.serveurSource.dev/cnrs/artefacts    343MB    latest    287eda08ed0e

On renomme:

docker tag registry.serveurSource.dev/cnrs/artefacts:v2 registry.serveurDestination/monlogin/artefacts:v2

On peut maintenant pousser en exécutant: Dès lors qu'on a plusieurs tokens (cf. note ci-dessous) :

docker --config ~/.mon-projet1 push gitlab-registry.serveurDestination/monlogin/mon-projet1-registry:<tag>
docker --config ~/.mon-projet2 push gitlab-registry.serveurDestination/monlogin/mon-projet2-registry:<tag>
docker login gitlab-registry.serveurDestination/monlogin/artefacts:latest
# puis
docker push gitlab-registry.serveurDestination/monlogin/artefacts:latest
Lorsqu'on a différent token (RO… Read Only) pour les différents projets, on peut les définir sur le serveur de prod en suivant le post https://stackoverflow.com/a/55635346/6614155
j'en ai défini un pour banadora et un pour ceramo
informatique/devops/registry-gitlab.txt · Dernière modification : 2024/03/06 12:18 de bertrand