GitLab - 7.34 Variables secrètes CI/CD pour Docker Hub
Un pipeline peut avoir besoin d'identifiants, par exemple pour publier une image Docker sur Docker Hub. Ces informations ne doivent jamais apparaître dans le fichier de pipeline. Cette leçon montre comment les stocker dans les paramètres du projet, sous forme de variables sécurisées.
Se connecter à Docker Hub dans le pipeline
Pour pousser une image, le job doit d'abord se connecter à Docker Hub avec la commande docker login. Cette commande reçoit un nom d'utilisateur et un mot de passe.
Écrire ces valeurs dans le pipeline les exposerait à tous. Les variables permettent de les fournir sans les écrire dans le fichier.
Le fichier de pipeline se contente d'appeler ces variables. Les valeurs réelles restent dans les paramètres du projet, hors du code.
docker login -u $<variable-utilisateur> -p $<variable-mot-de-passe>
Créer une variable dans les paramètres du projet
Dans les paramètres du projet, la section des variables permet d'en ajouter. Chaque variable est une paire clé-valeur. La clé ne doit contenir que des lettres, des chiffres ou des traits de soulignement, sans espace.
Deux types existent. Le type variable stocke une valeur simple. Le type fichier stocke la valeur dans un fichier, et la variable contient le chemin de ce fichier.
Protéger et masquer
L'option protégée rend la variable disponible seulement sur les branches protégées, comme la branche principale. Une branche de fonctionnalité n'y a donc pas accès.
L'option masquée cache la valeur dans les journaux. Elle exige une valeur d'une seule ligne, de huit caractères ou plus.
Avec l'option masquée, une commande qui affiche la valeur ne l'expose pas dans les journaux.
Le champ d'environnement est optionnel. Par défaut, il n'est pas renseigné, et la vidéo précise qu'il sera détaillé plus tard.
En résumé
Les identifiants Docker Hub se stockent dans des variables des paramètres du projet, et non dans le fichier de pipeline. L'option protégée limite la variable aux branches protégées. L'option masquée empêche d'afficher la valeur dans les journaux.
Points clés
- Les identifiants ne doivent pas figurer dans le fichier de pipeline.
- La commande docker login reçoit l'utilisateur et le mot de passe par variables.
- Une clé ne contient que des lettres, des chiffres ou des traits de soulignement.
- Le type fichier stocke la valeur dans un fichier.
- L'option masquée cache la valeur dans les journaux de job.
Questions fréquentes
Pourquoi ne pas écrire le mot de passe dans le fichier ?
Toute personne qui accède au fichier peut voir le mot de passe. Une variable de projet évite cette exposition.
À quoi sert l'option protégée ?
Elle limite la variable aux branches protégées. Dans l'exemple, une branche de fonctionnalité ne peut donc pas se connecter à Docker Hub.
Quand l'option masquée est-elle utile ?
Elle cache la valeur dans les journaux. La valeur doit tenir sur une seule ligne et faire au moins huit caractères.