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 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-le sur Cloud Run ou Google Kubernetes Engine (GKE).
Dans l'ensemble, la configuration pour cela est assez simple: Dockerfiles gère déjà la plupart 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.
Dirigez-vous vers le Console Cloud Source, et créez un nouveau repo. 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 ajouter
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 origine
avec Google
:
git push - all google
Configurer Cloud Build
Dirigez-vous vers le Console Cloud Buildet configurez un nouveau déclencheur de construction:
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 compilation 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 fichier Dockerfile, tant qu'il se construit localement, vous ne devriez pas avoir de problèmes avec la compilation.
Si vous vous dirigez vers le 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 exécuter déployer
et en lui passant une référence à l'image nouvellement créée dans GCR.
pas: # construire l'image du conteneur - nom: 'gcr.io/cloud-builders/docker' args: ('build', '-t', 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA', '.') # pousser l'image du conteneur vers Container Registry - nom: 'gcr.io/cloud-builders/docker' args: ('push', 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA') # Déployer l'image du conteneur sur Cloud Run - nom: 'gcr.io/cloud-builders/gcloud' args: - 'courir' - 'déployer' - '(NOM DU SERVICE)' - '--image' - 'gcr.io/$PROJECT_ID/(SERVICE-NAME):$COMMIT_SHA' - '--Région' - '(RÉGION)' - '--Plate-forme' - 'géré' 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.