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 (Obsolète)
    • 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 Google 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 la console Google Cloud :

    Accéder à la page "Comptes de service"

  2. Cliquez sur l'adresse e-mail du compte de service d'exécution de votre service Cloud Run dans Cloud Run (par défaut, il s'agit de PROJECT_NUMBER-compute@developer.gserviceaccount.com).

  3. Cliquez sur l'onglet Autorisations.

  4. Cliquez sur Accorder l'accès.

  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.

gcloud

Exécutez 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