Créer des conteneurs

Cloud Run accepte les images de conteneur créées avec n'importe quel outil capable de générer des images de conteneur, pour autant qu'elles respectent le contrat relatif au conteneur. En particulier, votre code doit écouter les requêtes HTTP sur le port défini par la variable d'environnement PORT. Cette variable d'environnement PORT est automatiquement injectée par Cloud Run dans votre conteneur.

Cette page décrit plusieurs façons de créer des images de conteneur :

  • Utiliser un fichier Dockerfile
  • Utiliser Buildpacks

Compiler à l'aide d'un fichier Dockerfile

Avant de compiler en local vos sources dans une image de conteneur ("conteneurisation") à l'aide de Docker ou Cloud Build, vous devez disposer d'un fichier Dockerfile et de sources. Les exemples Hello World contiennent des exemples d'applications et des fichiers Docker dans de nombreux langages courants.

Si vous utilisez des fichiers Dockerfile, vous pouvez procéder de l'une ou l'autre des manières suivantes :

  • Compiler à l'aide de Cloud Build
  • Compiler localement à l'aide de Docker

Compiler à l'aide de Cloud Build

Vous pouvez créer une image sur Google Cloud en utilisant Cloud Build comme suit :

  1. Naviguez jusqu'au dossier contenant vos sources et votre fichier Docker.

  2. Exécutez la commande suivante :

    gcloud builds submit --tag IMAGE_URL

    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 Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

Pour obtenir des conseils sur l'amélioration des performances de compilation, consultez la page Bonnes pratiques pour accélérer les compilations.

Créer des images localement et les transférer à l'aide de Docker

Si Docker est installé localement, vous pouvez utiliser docker build au lieu d'utiliser Cloud Build ou Buildpacks.

Pour créer une image de conteneur à l'aide de Docker, procédez comme suit :

  1. Accédez au dossier contenant vos sources et votre fichier Dockerfile.

  2. Exécutez la commande suivante :

    docker build . --tag IMAGE_URL

    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 Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

  3. Si vous n'avez pas encore configuré Docker pour utiliser la CLI Google Cloud afin d'authentifier les requêtes auprès de Container Registry, utilisez la commande suivante:

    gcloud auth configure-docker

    Vous devez le faire avant de pouvoir transférer ou extraire des images à l'aide de Docker. Cette opération n'est à effectuer qu'une seule fois.

  4. Transférez l'image de conteneur dans un registre de conteneurs compatible:

    docker push IMAGE_URL

    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 Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

Pour exclure les fichiers locaux de ce processus, suivez les instructions du fichier de configuration .dockerignore.

Compiler à l'aide des packs de création Google Cloud

Les buildpacks de Google Cloud sont un ensemble de packs de création compatibles avec CNCF qui compilent du code source dans des images de conteneurs conçues pour s'exécuter sur les plates-formes de conteneurs Google Cloud, y compris Cloud Run.

Pour obtenir la liste des langages acceptés, consultez la documentation sur les buildpacks de Google Cloud.

Compiler avec les buildpacks de Google Cloud à l'aide de Cloud Build

Pour compiler avec les packs de création Google Cloud:

  1. Accédez au dossier contenant vos sources.

  2. Exécutez la commande suivante :

    gcloud builds submit --pack image=IMAGE_URL

    Remplacez IMAGE_URL par l'URL de l'image de conteneur, par exemple gcr.io/myproject/myservice.

  3. Attendez la fin de la compilation.

Compiler avec les packs de création Google Cloud à l'aide de la ligne de commande pack

Pour compiler à l'aide de la commande pack :

  1. Si vous ne l'avez pas déjà fait, installez Docker.

  2. Si vous n'avez pas encore configuré Docker pour utiliser la CLI Google Cloud afin d'authentifier les requêtes auprès de Container Registry, utilisez la commande suivante :

    gcloud auth configure-docker

    Vous devez le faire avant de pouvoir transférer ou extraire des images à l'aide de Docker. Cette opération n'est à effectuer qu'une seule fois.

  3. Si vous ne l'avez pas déjà fait, installez pack.

  4. Accédez au dossier contenant vos sources.

  5. Exécutez la commande suivante pour créer des conteneurs et les transférer vers votre registre de conteneurs :

    pack build --publish IMAGE_URL

    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 Artifact Registry, le dépôt REPO_NAME doit déjà être créé. L'URL se présente sous la forme suivante : REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

  6. Attendez que pack ait terminé.

Pour en savoir plus, consultez les instructions de la section Créer une application.

Étape suivante