Configurer manuellement un déploiement continu à l'aide de Cloud Build

Les instructions suivantes supposent que vous disposez d'un dépôt Git avec un fichier Dockerfile à sa racine.

Pour automatiser le déploiement à partir de Git avec Cloud Build, procédez comme suit :

  1. Créez une configuration Cloud Build qui effectue les opérations suivantes :

    • Création de l'image de conteneur
    • Transfert de l'image vers Container Registry
    • Déploiement d'une nouvelle révision sur le service Cloud Run

    Pour ce faire, ajoutez un fichier nommé cloudbuild.yaml à la racine de votre dépôt, avec le contenu suivant :

     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]'
     images:
     - 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'
    

    Remplacer

    • [SERVICE-NAME] par le nom du service Cloud Run.
    • [REGION] par la région du service Cloud Run que vous déployez.

    L'utilisation de la variable de substitution $COMMIT_SHA est renseignée par Cloud Build lorsqu'elle est déclenchée à partir d'un dépôt Git.

  2. Attribuez les rôles Administrateur Cloud Run et Utilisateur du compte de service au compte de service Cloud Build :

    1. Ouvrez la page des paramètres Cloud Build dans Cloud Console :

      Accéder à la page des paramètres Cloud Build

    2. Dans le panneau des autorisations du compte de service, définissez le rôle Administrateur Cloud Run sur l'état Activé :

      Capture d'écran de la page des autorisations de compte de service

    3. Sélectionnez Accorder l'accès à tous les comptes de service pour attribuer le rôle Utilisateur du compte de service à tous les comptes de service du projet sur votre page.

  3. Cliquez sur Déclencheurs dans le panneau de navigation de gauche pour ouvrir la page Déclencheurs :

    Accéder à la page "Déclencheurs"

    1. Cliquez sur Créer un déclencheur.
    2. Dans le champ Nom, saisissez le nom du déclencheur.
    3. Sous Événement, sélectionnez l'événement du dépôt pour démarrer le déclencheur.
    4. Sous Source, sélectionnez le dépôt et le nom de la branche ou du tag qui lancera votre déclencheur. Pour en savoir plus sur la spécification des branches à compiler automatiquement, consultez la page Créer un déclencheur de compilation.
    5. Sous Fichier de configuration Cloud Build (yaml ou json), sélectionnez Fichier de configuration Cloud Build.
    6. Dans le champ Emplacement du fichier de configuration Cloud Build, saisissez cloudbuild.yaml après la barre oblique (/).
    7. Cliquez sur Créer pour enregistrer le déclencheur de compilation.
  4. Vous avez terminé. Désormais, chaque fois que vous effectuez un transfert vers votre dépôt, un build et un déploiement sont automatiquement appelés dans votre service Cloud Run.

Déploiement continu à l'aide des autorisations IAM minimales

Lorsqu'un conteneur est déployé sur un service Cloud Run, il s'exécute sous l'identité du compte de service d'exécution pour ce service Cloud Run. Comme Cloud Build peut déployer automatiquement de nouveaux conteneurs, il doit pouvoir agir en tant que compte de service d'exécution pour le service Cloud Run.

Pour accorder à Cloud Build un accès limité permettant d'effectuer des déploiements sur un service Cloud Run, procédez comme suit :

Console (UI)

  1. Accédez à la page Comptes de service de Google Cloud Console :

    Accéder à la page "Comptes de service"

  2. Sélectionnez le compte de service d'exécution de votre service Cloud Run (par défaut, il s'agit de PROJECT_NUMBER-compute@developer.gserviceaccount.com).

  3. Cliquez sur Afficher le panneau d'informations en haut à droite pour afficher l'onglet Autorisations.

  4. Cliquez sur le bouton Ajouter un membre.

  5. Saisissez le compte de service Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com).

  6. Dans la liste déroulante Sélectionner un rôle, sélectionnez le rôle Comptes de service > Utilisateur du compte de service.

  7. Cliquez sur Enregistrer.

Ligne de commande

Utilisez la commande gcloud iam service-accounts add-iam-policy-binding :

gcloud iam service-accounts add-iam-policy-binding \
  PROJECT_NUMBER-compute@developer.gserviceaccount.com \
  --member="serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser"

Remplacez PROJECT_NUMBER par l'ID numérique de votre projet.

Si vous utilisez Cloud Run avec une identité de service personnalisée, remplacez PROJECT_NUMBER-compute@developer.gserviceaccount.com par l'adresse de votre compte de service.

Consultez la section Autorisations de déploiement pour plus d'informations.

Étape suivante