Cette page explique comment configurer la commande entrypoint et les arguments associés pour une instance Cloud Run.
Lorsque Cloud Run démarre un conteneur, il exécute la commande entrypoint par défaut et les arguments de commande par défaut de l'image. Si vous souhaitez ignorer la commande entrypoint et les arguments de commande par défaut de l'image, vous pouvez utiliser les champs command et args dans la configuration du conteneur. Le champ command spécifie la commande réelle exécutée par le conteneur. Le champ args spécifie les arguments transmis à cette commande.
Notez que vous pouvez avoir un maximum de 1 000 arguments par conteneur pour chaque instance.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer et déployer des instances Cloud Run, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Développeur Cloud Run (
roles/run.developer) sur l'instance Cloud Run - Utilisateur du compte de service (
roles/iam.serviceAccountUser) sur l'identité du service
Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre instance Cloud Run communique avec Google Cloud des API, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les pages Autorisations de déploiement et Gérer les accès.
Configurer un point d'entrée et des arguments
Pour remplacer les paramètres ENTRYPOINT et CMD par défaut de l'image, vous pouvez définir la commande entrypoint et les arguments pour une instance Cloud Run à l'aide de Google Cloud CLI ou de YAML :
gcloud
Pour mettre à jour la commande de démarrage et les arguments d'une instance existante :
gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N
Remplacez les éléments suivants :
- INSTANCE : nom de l'instance.
- COMMAND : commande avec laquelle le conteneur démarre, si vous n'utilisez pas la commande par défaut.
- ARG1 : argument que vous envoyez à la commande du conteneur. Utilisez une liste en séparant chaque argument par une virgule.
Pour spécifier un point d'entrée et des arguments lors du déploiement d'une instance nouvelle ou existante :
gcloud beta run instances deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Remplacez IMAGE_URL par une référence à l'image de conteneur, telle que us-docker.pkg.dev/cloudrun/container/hello:latest.
Si vous souhaitez restaurer les valeurs par défaut du conteneur pour les commandes entrypoint et les arguments, fournissez des chaînes vides comme suit :
gcloud beta run instances --image IMAGE_URL --command "" --args ""
YAML
Si vous créez une instance, ignorez cette étape. Si vous mettez à jour une instance existante, téléchargez sa configuration YAML :
gcloud beta run instances describe INSTANCE --format export > instance.yaml
L'exemple suivant contient la configuration YAML :
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
Remplacez les éléments suivants :
- INSTANCE : nom de votre instance Cloud Run.
- CONTAINER_NAME : nom du conteneur.
IMAGE_URL: référence à l'image de conteneur, telle queus-docker.pkg.dev/cloudrun/container/hello:latest.- COMMAND : commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut.
- ARG1 : argument que vous envoyez à la commande du conteneur. Si vous utilisez plusieurs arguments, spécifiez-les chacun sur sa propre ligne, par exemple, comme indiqué, ARG-N.
Créez ou mettez à jour l'instance à l'aide de la commande suivante :
gcloud beta run instances replace instance.yaml
Configurer l'ordre de démarrage des conteneurs pour les déploiements side-car
Pour spécifier l'ordre de démarrage des conteneurs dans un déploiement side-car, utilisez la fonctionnalité de dépendances de conteneurs. Spécifiez les conteneurs qui ont des dépendances et listez les conteneurs dont ils dépendent, afin que ces conteneurs soient démarrés en premier. Les conteneurs sans dépendance sont toujours démarrés en premier et simultanément.
Pour utiliser cette fonctionnalité, vous devez utiliser des vérifications d'vérification de l'état démarrage. La vérification du démarrage permet à Cloud Run d'inspecter l'état d'un conteneur dépendant pour s'assurer qu'il est opérationnel avant de démarrer le conteneur suivant. Si vous n'utilisez pas de vérifications d'état, les conteneurs sont démarrés dans l'ordre spécifié, même si les conteneurs dont ils dépendent ne démarrent pas.
Notez qu'il n'existe pas de vérification d'état de démarrage par défaut pour les instances.
Utilisez Google Cloud CLI ou YAML pour spécifier l'ordre de démarrage :
gcloud
Avant d'utiliser Google Cloud CLI pour spécifier l'ordre de démarrage, configurez une vérification d'état de démarrage.
-
Dans la Google Cloud console, activez Cloud Shell.
En bas de la Google Cloud console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Pour déployer plusieurs conteneurs sur une instance avec un ordre de démarrage spécifié, exécutez la commande suivante :
gcloud beta run instances deploy INSTANCE \ --container CONTAINER_1_NAME --image='INSTANCE_IMAGE' --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
Remplacez les éléments suivants :
- INSTANCE : nom de l'instance.
IMAGE_URL: référence à l'image de conteneur, telle queus-docker.pkg.dev/cloudrun/container/hello:latest.SIDECAR_IMAGE: référence à l'image de conteneur side-car.Si vous souhaitez configurer chaque conteneur dans la commande de déploiement, indiquez la configuration de chaque conteneur après les paramètres
container.
YAML
Si vous créez une instance, ignorez cette étape. Si vous mettez à jour une instance existante, téléchargez sa configuration YAML :
gcloud beta run instances describe INSTANCE --format export > instance.yaml
L'exemple suivant contient la configuration YAML :
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Remplacez les éléments suivants :
- INSTANCE : nom de votre instance Cloud Run.
- CONTAINER1 : nom du premier conteneur qui dépend d'un ou de plusieurs conteneurs. Vous pouvez définir le nom du conteneur dans le fichier YAML. Cloud Run génère automatiquement un nom si aucun n'est spécifié.
- CONTAINER2 : nom du conteneur qui doit démarrer avant CONTAINER1.
- CONTAINER3 : nom du deuxième conteneur qui dépend d'un ou de plusieurs conteneurs.
Dans l'exemple présenté dans l'extrait de code YAML, CONTAINER2 démarre en premier, CONTAINER1 en deuxième et CONTAINER3 en dernier.
Créez ou mettez à jour l'instance à l'aide de la commande suivante :
gcloud beta run instances replace instance.yaml