Jib crée des conteneurs sans utiliser de fichier Dockerfile ni nécessiter l'installation de Docker. Vous pouvez utiliser Jib dans les plug-ins Jib pour Maven ou Gradle, ou utiliser la bibliothèque Java Jib.
Que fait Jib ?
Jib gère toutes les étapes de l'empaquetage de votre application dans une image de conteneur. Vous n'avez pas besoin de connaître les bonnes pratiques pour créer des fichiers Dockerfile ou installer Docker.
Flux de compilation Docker :
Flux de compilation Jib :
Jib organise votre application en plusieurs couches (dépendances, ressources et classes) et utilise la mise en cache des couches d'images Docker pour accélérer les compilations en recréant uniquement les modifications. L'organisation des couches de Jib et l'image de base de petite taille réduisent la taille globale de l'image, ce qui améliore les performances et la portabilité.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Registry API.
- Si vous n'avez pas encore Java, téléchargez, installez et configurez Java.
- Installez Maven 3.5 ou une version ultérieure.
- Installez et initialisez la CLI Google Cloud.
- Authentifiez-vous auprès de Container Registry, en utilisant la CLI Google Cloud comme assistant d'identification Docker:
gcloud auth configure-docker
Vous pouvez également consulter la documentation sur la configuration de Jib pour découvrir d'autres méthodes d'authentification.
Compiler à l'aide de Jib
Sélectionnez un projet existant et accédez au dossier source ou clonez l'exemple à l'aide de la commande suivante :
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/run/helloworld
Ajoutez le plug-in à votre fichier
pom.xml
:<plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>2.8.0</version> <configuration> <to> <image>gcr.io/PROJECT/IMAGE</image> </to> </configuration> </plugin>
Remplacer
- PROJECT par l'ID de votre projet Google Cloud
- IMAGE par le nom de votre image.
Si vous ne souhaitez pas modifier votre fichier
pom.xml
, vous pouvez utiliser la commande suivante :mvn compile com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/PROJECT/IMAGE
Compilez et transférez l'image vers un registre de conteneurs :
mvn compile jib:build
Vous pouvez vérifier le bon déroulement de l'opération en affichant votre conteneur dans Container Registry.
Si vous avez installé Docker, vous pouvez éventuellement compiler dans votre installation Docker locale afin d'inspecter ou d'exécuter l'image comme tout autre conteneur local :
mvn compile jib:dockerBuild
Autres personnalisations
Vous pouvez personnaliser vos compilations Jib de manière similaire aux fichiers Dockerfile, par exemple en ajoutant des variables d'environnement et en sélectionnant une image de base.
Ajouter des variables d'environnement
Vous pouvez ajouter des variables d'environnement à votre compilation de la même manière qu'avec l'instruction ENV
dans un fichier Dockerfile, comme suit :
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<to>
<image>gcr.io/PROJECT/IMAGE</image>
</to>
<container>
<environment>
<ENV_VAR>VALUE</ENV_VAR>
</environment>
</container>
</configuration>
</plugin>
Remplacer
- PROJECT par l'ID de votre projet Google Cloud
- IMAGE par le nom de votre image.
- ENV_VAR correspond à
NAME
. - VALUE par la valeur souhaitée.
Votre application va maintenant envoyer la réponse Hello <var>VALUE</var>!
Modifier l'image de base
L'image de base est équivalente aux instructions FROM
d'un fichier Dockerfile. L'image de base peut être mise à jour en modifiant le champ from.image
.
Si vous souhaitez inclure une interface système pour le débogage, définissez l'image de base sur alpine:3
ou openjdk:VERSION
(si Java est nécessaire).
Pour ajouter des packages système, vous devez créer une image de base avec ces packages installés. Pour plus d'informations, reportez-vous à la section Créer des conteneurs.
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<from>
<image>gcr.io/PROJECT/BASE_IMAGE</image>
</from>
<to>
<image>gcr.io/PROJECT/IMAGE_NAME</image>
</to>
</configuration>
</plugin>
Essayez de mettre à jour le champ from.image
vers une autre image de base Java, telle que openjdk:8-alpine
.
Personnaliser d'autres aspects Java
Jib est compatible avec les configurations d'exécution Java qui peuvent être nécessaires pour exécuter votre application. Pour plus de personnalisations, consultez la section Extended Usage.
Transmettre le code
Configurer les paramètres par défaut de gcloud
Pour configurer gcloud avec les valeurs par défaut pour votre service Cloud Run, procédez comme suit :
Définissez le projet par défaut :
gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par le nom du projet que vous avez créé pour ce tutoriel.
Configurez gcloud pour la région choisie :
gcloud config set run/region REGION
Remplacez REGION par la région Cloud Run compatible de votre choix.
Emplacements Cloud Run
Cloud Run est régional, ce qui signifie que l'infrastructure qui exécute vos services Cloud Run est située dans une région spécifique et gérée par Google pour être disponible de manière redondante dans toutes les zones de cette région.
Lors de la sélection de la région dans laquelle exécuter vos services Cloud Run, vous devez tout d'abord considérer vos exigences en matière de latence, de disponibilité et de durabilité.
Vous pouvez généralement sélectionner la région la plus proche de vos utilisateurs, mais vous devez tenir compte de l'emplacement des autres produits Google Cloud utilisés par votre service Cloud Run.
L'utilisation conjointe de produits Google Cloud dans plusieurs emplacements peut avoir une incidence sur la latence et le coût de votre service.
Cloud Run est disponible dans les régions suivantes :
Soumis aux tarifs de niveau 1
asia-east1
(Taïwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlande) Faibles émissions de CO2europe-west1
(Belgique) Faibles émissions de CO2europe-west4
(Pays-Bas)us-central1
(Iowa) Faibles émissions de CO2us-east1
(Caroline du Sud)us-east4
(Virginie du Nord)us-west1
(Oregon) Faibles émissions de CO2
Soumis aux tarifs de niveau 2
asia-east2
(Hong Kong)asia-northeast3
(Séoul, Corée du Sud)asia-southeast1
(Singapour)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Inde)asia-south2
(Delhi, Inde)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsovie, Pologne)europe-west2
(Londres, Royaume-Uni)europe-west3
(Francfort, Allemagne)europe-west6
(Zurich, Suisse) Faibles émissions de CO2northamerica-northeast1
(Montréal) Faibles émissions de CO2northamerica-northeast2
(Toronto) Faibles émissions de CO2southamerica-east1
(São Paulo, Brésil) Faibles émissions de CO2southamerica-west1
(Santiago, Chili)us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Si vous avez déjà créé un service Cloud Run, vous pouvez afficher la région dans le tableau de bord Cloud Run de Cloud Console.
Déployer une application dans Cloud Run
Déployez votre conteneur à partir de Container Registry à l'aide de la CLI gcloud
vers Cloud Run ou Cloud Run pour Anthos.
Déployez l'image de conteneur à l'aide de la commande suivante :
gcloud run deploy SERVICE-NAME \ --image gcr.io/PROJECT/IMAGE \ --platform managed
Remplacer
- SERVICE-NAME par le nom de service que vous avez choisi.
- PROJECT par l'ID de votre projet Google Cloud
- IMAGE par le nom de votre image.
Notez que l'image de conteneur est déployée sur le service et la région (Cloud Run) ou sur le cluster (Cloud Run for Anthos sur Google Cloud) que vous avez précédemment configurés dans la section Configurer gcloud.
Si vous déployez sur Cloud Run, vous serez invité à autoriser les appels non authentifiés. Si vous souhaitez accéder immédiatement à votre service, répondez y
, "Oui", à l'invite "Autoriser sans authentification". Si votre service est privé et que les requêtes doivent inclure l'authentification, répondez n
, "Non", à l'invite "Autoriser sans authentification".
Si votre service est public, utilisez l'URL qui s'affiche après un déploiement réussi pour accéder au conteneur déployé. Si votre service est privé, utilisez la commande curl
suivante pour appeler votre service :
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
S'il est déployé dans Cloud Run for Anthos, consultez la section Accéder à votre service déployé.
Effectuer un nettoyage
Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.
Pour supprimer le projet :
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Supprimer les ressources du tutoriel
Supprimez le service Cloud Run que vous avez déployé dans ce tutoriel :
gcloud run services delete SERVICE-NAME
Où SERVICE-NAME est le nom de service que vous avez choisi.
Vous pouvez également supprimer des services Cloud Run à partir de Google Cloud Console.
Supprimez la configuration régionale gcloud par défaut que vous avez ajoutée lors de la configuration du tutoriel :
gcloud config unset run/region
Supprimez la configuration du projet :
gcloud config unset project
Étape suivante
- Pour en savoir plus sur le contrat que vos conteneurs doivent respecter pour pouvoir être déployés dans Cloud Run, consultez la page Contrat relatif aux conteneurs.
- Pour automatiser les versions et les déploiements de vos services Cloud Run à l'aide des déclencheurs Cloud Build, configurez le déploiement continu.
- Pour en savoir plus sur l'utilisation et la personnalisation de Jib, consultez le dépôt GitHub de Jib.