===== 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
# au lieu de -p , 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:
en remplaçant **** 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:
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:
docker --config ~/.mon-projet2 push gitlab-registry.serveurDestination/monlogin/mon-projet2-registry:
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