Les compilateurs sont des images avec versions gérées qui contiennent tous les composants nécessaires à la création d'un conteneur exécutable. Chaque compilateur utilise une distribution d'OS spécifique comme image de base, comme Ubuntu 22, et est compatible avec plusieurs versions de langage de programmation.
Vous devrez peut-être personnaliser la version du compilateur si vous avez besoin :
- D'une dépendance spécifique à l'OS disponible uniquement dans une version de compilateur spécifique.
- D'une version spécifique du langage de programmation qui n'est disponible que dans une version de compilateur spécifique.
Compilations locales
Pour les compilations locales, vous devez avoir installé la CLI Pack et Docker.
Avant de commencer
- Installez Docker Community Edition (CE) sur votre poste de travail. Docker est utilisé par
pack
en tant que générateur d'images OCI. - Installez la CLI Pack.
- Installez l'outil de contrôle de source Git pour récupérer l'exemple d'application depuis GitHub.
Spécifier la version du compilateur avec pack
Vous pouvez ajouter l'option --builder
à la commande pack pour spécifier la version du compilateur que vous souhaitez utiliser:
pack build SERVICE_IMAGE_NAME --builder=BUILDER_IMAGE_URL
Remplacez :
BUILDER_IMAGE_URL
par l'URL du compilateur Exemple :gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
par le nom que vous avez choisi pour l'image de votre application.
Pour en savoir plus sur la commande pack
, consultez la documentation de la CLI.
Spécifier la version du compilateur à l'aide d'un descripteur project.toml
Vous pouvez utiliser un descripteur de projet de buildpacks (project.toml
) pour définir le compilateur lors d'une compilation via la commande pack
.
- Dans le répertoire racine de votre application, créez un fichier nommé
project.toml
avec la configuration suivante :[build] builder = "BUILDER_IMAGE_URL"
-
Compilez votre application en exécutant la commande "pack" :
pack build SERVICE_IMAGE_NAME
Remplacez :
BUILDER_IMAGE_URL
par l'URL du compilateur, par exemplegcr.io/buildpacks/builder:google-22
;SERVICE_IMAGE_NAME
par le nom que vous avez choisi pour l'image de votre application.
Builds distants
Vous pouvez utiliser un compilateur spécifique avec Cloud Build en ajoutant l'option --pack
lors de l'envoi de votre projet.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Cloud Build and Artifact Registry.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Cloud Build and Artifact Registry.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
- Assurez-vous que votre projet Google Cloud a accès à un dépôt d'images de conteneurs.
Pour configurer l'accès à un dépôt Docker dans Artifact Registry, procédez comme suit :
- Créez un dépôt Docker au même emplacement que votre projet Google Cloud.
gcloud artifacts repositories create REPO_NAME \ --repository-format=docker \ --location=REGION --description="DESCRIPTION"
Remplacez :REPO_NAME
par le nom que vous avez choisi pour votre dépôt Docker.REGION
par la région la plus proche de l'emplacement de votre projet Google Cloud, ou celle du projet ;DESCRIPTION
par la description de votre choix.
Par exemple, pour créer un dépôt
docker
dansus-west2
avec la description "Docker repository", exécutez la commande suivante :gcloud artifacts repositories create buildpacks-docker-repo --repository-format=docker \ --location=us-west2 --description="Docker repository"
- Vérifiez que votre dépôt a bien été créé :
gcloud artifacts repositories list
Le nom que vous avez choisi pour votre dépôt Docker doit s'afficher dans la liste.
- Créez un dépôt Docker au même emplacement que votre projet Google Cloud.
Compiler l'application à l'aide d'un compilateur spécifique
- Utilisez
gcloud
pour envoyer le code source de l'application à Cloud Build:gcloud builds submit --pack builder=BUILDER_IMAGE_URL,image=LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/SERVICE_IMAGE_NAME
Remplacez :
BUILDER_IMAGE_URL
par l'URL du compilateur. Exemple :gcr.io/buildpacks/builder:google-22
LOCATION
par le nom de la région de votre dépôt de conteneurs. Exemple :us-west2-docker.pkg.dev
PROJECT_ID
par l'ID de votre projet Google Cloud.REPO_NAME
par le nom de votre dépôt Docker.SERVICE_IMAGE_NAME
par le nom de l'image de conteneur que vous avez créée.
Pour en savoir plus sur la commande
submit
, consultez la documentation Cloud Build. -
Vérifiez que l'exemple d'application a bien été publié dans
REPO_NAME
:gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME
Remplacez :
LOCATION
par le nom de la région de votre dépôt de conteneurs. Exemple :us-west2-docker.pkg.dev
PROJECT_ID
par l'ID de votre projet Google Cloud.REPO_NAME
par le nom de votre dépôt Docker.
Effectuer un déploiement depuis une source à l'aide de Cloud Run
Vous pouvez utiliser un fichier descripteur de projet de buildpacks, par exemple un fichier project.toml
, pour définir le compilateur lors d'un déploiement depuis une source à l'aide de Cloud Run.
- Initialisez un fichier
project.toml
à la racine du répertoire de votre application et collez-y la configuration suivante :[build] builder = "BUILDER_IMAGE_URL"
-
Déployez votre application à partir de la source :
gcloud run deploy --source . SERVICE_IMAGE_NAME
Remplacez :
BUILDER_IMAGE_URL
par l'URL du compilateur Exemple :gcr.io/buildpacks/builder:google-22
SERVICE_IMAGE_NAME
par le nom de l'image de conteneur que vous avez créée.