Configurer des conteneurs

Cette page explique comment configurer le port du conteneur, ainsi que la commande entrypoint et ses arguments.

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.

Configurer le port du conteneur

Toute modification de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

Cloud Run injecte la variable d'environnement PORT dans le conteneur. Le conteneur doit écouter sur le port défini par la variable d'environnement PORT plutôt que sur un port spécifique codé en dur. Toutefois, si cela n'est pas possible, vous pouvez configurer le port sur lequel les requêtes sont envoyées adressées au conteneur :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, renseignez la page de paramètres initiale du service, puis cliquez sur Suivant > Paramètres avancés pour accéder à la page de configuration du service.

  4. Cliquez sur l'onglet Conteneur.

    image

  5. Spécifiez le port auquel vous souhaitez envoyer les requêtes, s'il ne s'agit pas du port par défaut "8080". Cela définit également la variable d'environnement "PORT".

  6. Cliquez sur Créer ou Déployer.

Ligne de commande

Vous pouvez mettre à jour la configuration du port d'un service à l'aide de la commande suivante :

gcloud run services update SERVICE --port PORT

Remplacez

  • SERVICE par le nom du service ;
  • PORT par le port auquel envoyer les requêtes. Notez que le port par défaut est 8080.

Vous pouvez également configurer des ports lors du déploiement à l'aide de la commande suivante :

gcloud run deploy --image IMAGE_URL --port PORT

Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour l'attribut containerPort: :

    spec:
      containers:
      - image: IMAGE_URL
        ports:
        - containerPort: PORT
    

    Remplacez

    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • PORT par le port auquel envoyer les requêtes.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Configurer la commande entrypoint du conteneur et ses arguments

Toute modification de configuration entraîne la création d'une révision. Les révisions ultérieures obtiennent aussi automatiquement le même paramètre de configuration, à moins que vous ne le mettiez explicitement à jour.

La commande du conteneur et les arguments spécifiés remplacent l'image par défaut ENTRYPOINT et CMD comme spécifié par Kubernetes.

Vous pouvez définir la commande entrypoint et ses arguments à l'aide de Cloud Console, de la ligne de commande gcloud ou d'un fichier .yaml lorsque vous créez un service ou déployez une nouvelle révision :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur Créer un service si vous configurez un nouveau service sur lequel effectuer un déploiement. Si vous configurez un service existant, cliquez sur celui-ci puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, renseignez la page de paramètres initiale du service, puis cliquez sur Suivant > Paramètres avancés pour accéder à la page de configuration du service.

  4. Cliquez sur l'onglet Conteneur.

    image

  5. Spécifiez la commande que le conteneur doit exécuter, s'il ne s'agit pas de la commande définie dans votre conteneur, et spécifiez éventuellement les arguments de la commande entrypoint.

  6. Cliquez sur Créer ou Déployer.

Ligne de commande

Vous pouvez mettre à jour la commande de démarrage et les arguments d'un service donné à l'aide de la commande suivante :

gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N

Remplacez

  • COMMAND par la commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut ;
  • ARG1 par l'argument à envoyer à la commande du conteneur. Si vous avez plusieurs arguments, indiquez-les sous forme de liste en les séparant par une virgule.

Vous pouvez également spécifier la commande entrypoint et ses arguments lors du déploiement à l'aide de la commande suivante :

gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

Remplacez IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest.

Si vous utilisez des signes "égal" dans vos arguments, indiquez-les au format suivant :

gcloud run deploy  \
  --args "--repo-allowlist=github.com/example/example_demo" \
  --args "--gh-webhook-secret=XX" \

Si vos arguments utilisent des virgules, reportez-vous à la section Configurer des variables d'environnement pour savoir comment échapper ces caractères.

YAML

Vous pouvez télécharger et afficher la configuration de service existante à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Modifiez les attributs command et args :

    spec:
      containers:
      - image: IMAGE_URL
        command:
        - COMMAND
        args:
        - "ARG1"
        - "ARG-N"
    

    Remplacez

    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/hello:latest ;
    • COMMAND par la commande avec laquelle le conteneur doit démarrer si vous n'utilisez pas la commande par défaut ;
    • ARG1 par l'argument à envoyer à la commande du conteneur. Si vous avez plusieurs arguments, indiquez-les sous forme de liste en les séparant par une virgule.
  3. Remplacez la configuration du service en utilisant la commande suivante :

    gcloud run services replace service.yaml

Afficher les paramètres du conteneur

Pour afficher les paramètres de conteneur actuels de votre service, procédez comme suit :

Console

  1. Accédez à Cloud Run

  2. Cliquez sur le service qui vous intéresse pour ouvrir la page Informations sur le service.

  3. Cliquez sur l'onglet Révisions.

  4. Dans le panneau de détails sur la droite, le paramètre du conteneur est répertorié sous l'onglet Conteneur.

Ligne de commande

  1. Exécutez la commande suivante :

    gcloud run services describe SERVICE
  2. Recherchez le paramètre de conteneur dans la configuration renvoyée.