Agence web » Actualités du digital » Configurer des builds de conteneurs automatisés avec GCP Cloud Build

Configurer des builds de conteneurs automatisés avec GCP Cloud Build

Le déploiement et l'intégration continus sont le processus qui consiste à exécuter automatiquement des tests et des compilations chaque fois que des modifications de la source sont poussées. Vous pouvez configurer Google Cloud Platform (GCP) pour exécuter des compilations Docker automatisées chaque fois que vous apportez des mises à jour à votre conteneur, et déployez sur Cloud Run ou Google Kubernetes Engine (GKE).

Dans l'ensemble, la configuration pour cela est assez simple: Dockerfiles gère déjà la majeure partie de la configuration de compilation. Il vous suffit donc de relier quelques services entre eux et de configurer Cloud Build pour déployer des mises à jour sur Cloud Run ou GKE.

Créer un référentiel Cloud Source

Cloud Build extrait le code de Cloud Source, la propre solution Git gérée de Google. Cependant, vous n'aurez pas à passer de votre fournisseur actuel, car vous pouvez simplement lier votre compte GitHub ou Bitbucket, ou simplement le configurer comme une version distante distincte.

Accédez à la console Cloud Source et créez un nouveau dépôt. Donnez-lui un nom et connectez-vous avec votre compte pour sélectionner un référentiel.

Si vous l'ajoutez en tant que télécommande distincte, vous pouvez ajouter le dépôt avec le git remote add commande, qui le rendra disponible sous le nom distant "google. » Pour pousser vers cette branche, tout ce que vous avez à faire est de qualifier complètement le nom de la télécommande et de la branche lors de l'exécution git push, en remplaçant la valeur par défaut origin avec google:

git push --all google

Configurer Cloud Build

Rendez-vous sur Cloud Build Console et configurez un nouveau déclencheur de build:

Ce déclencheur s'exécutera en réponse aux événements du référentiel source. Donnez-lui un nom et indiquez si vous souhaitez créer en réponse à des validations dans une branche spécifique, ou lorsque de nouvelles balises sont poussées, ou lorsque des demandes d'extraction sont effectuées sur GitHub.

En dessous, sélectionnez "Dockerfile" comme configuration de compilation, plutôt que la propre configuration YAML de Google. C'est l'avantage de travailler avec des conteneurs; vous avez déjà géré le processus de construction dans la configuration Docker, vous pouvez donc simplement le sélectionner ici.

Si votre Dockerfile est nommé «Dockerfile» et placé à la racine du référentiel, vous pouvez laisser les deux premiers champs vides. Pour le nom de l'image, il sera transféré vers GCR, le propre registre de conteneurs de Google.

gcr.io/$PROJECT_ID/imagename:$COMMIT_SHA

Une fois créé, vous pouvez cliquer sur «Run Trigger» pour démarrer manuellement la construction. Étant donné que Cloud Build utilise uniquement votre Dockerfile, tant qu'il se construit localement, vous ne devriez pas avoir de problèmes avec la compilation.

Si vous vous dirigez vers la console GCR, vous devriez voir l'image nouvellement construite.

Configurer les déploiements automatiques sur Cloud Run

Vous pouvez mettre à jour manuellement vos déploiements, mais si vous souhaitez effectuer des mises à jour automatiques, vous aurez besoin d'un peu plus de configuration.

Au lieu de choisir uniquement le Dockerfile, vous pouvez choisir d'utiliser un fichier YAML traditionnel, qui vous permettra d'exécuter certaines commandes après le processus de construction. Dans ce cas, en cours d'exécution gcloud run deploy et en lui passant une référence à l'image nouvellement créée dans GCR.

steps:
# build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ('build', '-t', 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA', '.')
# push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ('push', 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA')
# Deploy container image to Cloud Run
- name: 'gcr.io/cloud-builders/gcloud'
args:
- 'run'
- 'deploy'
- '(SERVICE-NAME)'
- '--image'
- 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA'
- '--region'
- '(REGION)'
- '--platform'
- 'managed'
images:
- 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA'

Vous devrez également autoriser Cloud Build à accéder à Cloud Run à partir des paramètres du compte de service.

★★★★★