3.8. L’utilisation des informations d’identification docker pour les registres privés
Il est possible de fournir des builds avec un fichier .docker/config.json avec des informations d’identification valides pour les registres de conteneurs privés. Cela vous permet de pousser l’image de sortie dans un registre d’image de conteneur privé ou de tirer une image de constructeur du registre d’image de conteneur privé qui nécessite une authentification.
Il est possible de fournir des informations d’identification pour plusieurs référentiels au sein d’un même registre, chacun avec des informations d’identification spécifiques à ce chemin de registre.
Ce n’est pas nécessaire pour le registre d’images de conteneur OpenShift Dedicated, car les secrets sont générés automatiquement pour vous par OpenShift Dedicated.
Le fichier .docker/config.json se trouve dans votre répertoire d’accueil par défaut et a le format suivant:
Il est possible de définir plusieurs registres d’images de conteneur ou de définir plusieurs référentiels dans le même registre. Alternativement, vous pouvez également ajouter des entrées d’authentification à ce fichier en exécutant la commande de connexion docker. Le fichier sera créé s’il n’existe pas.
Kubernetes fournit des objets secrets, qui peuvent être utilisés pour stocker la configuration et les mots de passe.
Conditions préalables
- Il faut avoir un fichier .docker/config.json.
Procédure
Créez le secret à partir de votre fichier .docker/config.json local en entrant la commande suivante:
oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
$ oc create secret generic dockerhub \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cela génère une spécification JSON du secret nommé dockerhub et crée l’objet.
Ajoutez un champ pushSecret dans la section de sortie du BuildConfig et définissez-le au nom du secret que vous avez créé, qui dans l’exemple précédent est dockerhub:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il est possible d’utiliser la commande oc set build-secret pour définir le secret de poussée sur la configuration de construction:
oc set build-secret --push bc/sample-build dockerhub
$ oc set build-secret --push bc/sample-build dockerhub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il est également possible de lier le secret push au compte de service utilisé par la construction au lieu de spécifier le champ pushSecret. Les builds utilisent par défaut le compte de service constructeur. Le secret push est automatiquement ajouté à la construction si le secret contient un identifiant qui correspond au référentiel hébergeant l’image de sortie de la construction.
oc secrets link builder dockerhub
$ oc secrets link builder dockerhub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Extrayez l’image du conteneur constructeur à partir d’un registre d’images de conteneur privé en spécifiant le champ pullSecret, qui fait partie de la définition de stratégie de construction:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il est possible d’utiliser la commande oc set build-secret pour définir le secret de traction sur la configuration de construction:
oc set build-secret --pull bc/sample-build dockerhub
$ oc set build-secret --pull bc/sample-build dockerhub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteCet exemple utilise pullSecret dans une version Source, mais il est également applicable dans les builds Docker et Custom.
Il est également possible de lier le pull secret au compte de service utilisé par la construction au lieu de spécifier le champ pullSecret. Les builds utilisent par défaut le compte de service constructeur. Le secret de traction est automatiquement ajouté à la construction si le secret contient un identifiant qui correspond au référentiel hébergeant l’image d’entrée de la build. Afin de lier le pull secret au compte de service utilisé par la build au lieu de spécifier le champ pullSecret, entrez la commande suivante:
oc secrets link builder dockerhub
$ oc secrets link builder dockerhub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteDans la spécification BuildConfig, vous devez spécifier une image à partir de l’image pour profiter de cette fonctionnalité. Les builds de stratégie Docker générés par oc new-build ou oc new-app peuvent ne pas le faire dans certaines situations.