Jib crea container senza utilizzare un Dockerfile o richiedendo un'installazione di Docker. Puoi utilizzare Jib nei plug-in Jib per Maven o Gradle oppure la libreria Jib Java.
Che cosa fa Jib?
Jib gestisce tutti i passaggi della creazione dell'applicazione in un'immagine container. Non devi conoscere le best practice per la creazione di Dockerfile o l'installazione di Docker.
Flusso di build Docker:
Flusso di compilazione Jib:
Jib organizza la tua applicazione in livelli separati, dipendenze, risorse e classi, e utilizza la memorizzazione nella cache del livello dell'immagine Docker per mantenere le build veloci semplicemente ricostruendo le modifiche. L'organizzazione del livello di Jib'e la piccola immagine di base mantiene le dimensioni complessive dell'immagine, il che migliora le prestazioni e la portabilità.
Prima di iniziare
- 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.
- Se non hai Java, scaricalo, installalo e configuralo.
- Installa Maven 3.5 o versioni successive.
- Installa e inizializza l'interfaccia a riga di comando di Google Cloud.
- Esegui l'autenticazione in Container Registry utilizzando l'interfaccia a riga di comando di Google Cloud come assistente di credenziali Docker:
gcloud auth configure-docker
Consulta la documentazione di configurazione del Jib per altri modi di autenticazione.
Edificio che utilizza Jib
Seleziona un progetto esistente e vai alla cartella di origine oppure clona l'esempio con il comando seguente:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/run/helloworld
Aggiungi il plug-in al tuo
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>
Sostituisci
- PROJECT con il tuo ID progetto Google Cloud.
- IMAGE con il nome della tua immagine.
Se non vuoi modificare il tuo
pom.xml
, puoi usare il comando:mvn compile com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/PROJECT/IMAGE
Crea ed esegui il push dell'immagine a un Container Registry:
mvn compile jib:build
Puoi verificare l'esito positivo visualizzando il tuo container in Container Registry.
Facoltativamente, se hai installato Docker, puoi creare la tua installazione Docker locale per poter ispezionare o eseguire l'immagine come qualsiasi altro container locale:
mvn compile jib:dockerBuild
Personalizzazioni aggiuntive
Puoi personalizzare le build del Jib in modi simili ai Dockerfile, ad esempio con l'aggiunta di variabili di ambiente e la selezione di un'immagine di base.
Aggiungi variabili di ambiente
Puoi aggiungere variabili di ambiente alla build in modo simile all'istruzione ENV
in un Dockerfile come segue:
<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>
Sostituisci
- PROJECT con il tuo ID progetto Google Cloud.
- IMAGE con il nome della tua immagine.
- ENV_VAR con
NAME
- VALUE con il valore desiderato.
Ora la tua domanda risponderà con Hello <var>VALUE</var>!
Cambia l'immagine di base
L'immagine di base equivale alle istruzioni FROM
in un Dockerfile. L'immagine di base può essere aggiornata modificando il campo from.image
.
Se vuoi includere una shell per il debug, imposta l'immagine di base su
alpine:3
o openjdk:VERSION
(se serve Java).
Per aggiungere pacchetti di sistema, devi creare un'immagine di base con i pacchetti installati. Per ulteriori informazioni, consulta Creazione di container.
<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>
Prova ad aggiornare il campo from.image
a un'altra immagine di base di Java, ad esempio openjdk:8-alpine
.
Personalizzazione di altri aspetti di Java
Jib supporta le configurazioni di runtime Java che potrebbero essere necessarie per eseguire l'applicazione. Per ulteriori personalizzazioni, consulta la sezione Utilizzo esteso.
Spedizione del codice
Configurazione delle impostazioni predefinite di gcloud
Per configurare gcloud con i valori predefiniti per il tuo servizio Cloud Run:
Imposta il progetto predefinito:
gcloud config set project PROJECT_ID
Sostituisci PROJECT_ID con il nome del progetto creato per questo tutorial.
Configura gcloud per l'area geografica scelta:
gcloud config set run/region REGION
Sostituisci REGION con l'area geografica supportata da Cloud Run a tua scelta.
Località Cloud Run
Cloud Run ha un'area geografica, il che significa che l'infrastruttura che esegue i tuoi servizi Cloud Run si trova in un'area geografica specifica ed è gestita da Google per essere disponibile in modo ridondante in tutte le zone dell'area geografica.
Soddisfare i requisiti di latenza, disponibilità o durabilità è un fattore principale per selezionare l'area geografica in cui vengono eseguiti i servizi Cloud Run.
In genere, puoi selezionare l'area geografica più vicina agli utenti, ma devi considerare la località degli altri prodotti Google Cloud utilizzati dal servizio Cloud Run.
L'utilizzo combinato dei prodotti Google Cloud in più località può influire sulla latenza del servizio e sui costi.
Cloud Run è disponibile nelle seguenti aree geografiche:
Soggetto ai prezzi di Livello 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) Bassi livelli di CO2europe-southwest1
(Madrid) CO basso2europe-west1
(Belgio) CO basso2europe-west4
(Paesi Bassi)europe-west8
(Milano)europe-west9
(Parigi) A basse emissioni di CO2us-central1
(Iowa) A basse emissioni di CO2us-east1
(Carolina del Sud)us-east4
(Virginia del Nord)us-east5
(Columbus)us-west1
(Oregon) Bassi livelli di CO2
Soggetto ai prezzi di Livello 2
asia-east2
(Hong Kong)asia-northeast3
(Seul, Corea del Sud)asia-southeast1
(Singapore)asia-southeast2
(Giacarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Varsavia, Polonia)europe-west2
(Londra, Regno Unito)europe-west3
(Francoforte, Germania)europe-west6
(Zurigo, Svizzera) A basse emissioni di CO2northamerica-northeast1
(Montreal) CO basso2northamerica-northeast2
(Toronto) Basso contenuto di CO2southamerica-east1
(San Paolo, Brasile) Bassa monossido di carbonio2southamerica-west1
(Santiago, Cile)us-west2
(Los Angeles)us-west3
(salina sul lago)us-west4
(Las Vegas)
Se hai già creato un servizio Cloud Run, puoi visualizzare l'area geografica nella dashboard di Cloud Run in Cloud Console.
esegui il deployment in Cloud Run
Esegui il deployment del tuo container da Container Registry utilizzando l'interfaccia a riga di comando gcloud su Cloud Run o Cloud Run for Anthos.
Esegui il deployment dell'immagine container utilizzando il seguente comando:
gcloud run deploy SERVICE-NAME \ --image gcr.io/PROJECT/IMAGE \ --platform managed
Sostituisci
- SERVICE-NAME con il nome del servizio che hai scelto.
- PROJECT con il tuo ID progetto Google Cloud.
- IMAGE con il nome della tua immagine.
Tieni presente che il deployment dell'immagine container è eseguito sul servizio e sull'area geografica (Cloud Run) o sul cluster (Cloud Run for Anthos) configurati in precedenza nella sezione Configurazione di gcloud.
Se esegui il deployment in Cloud Run, ti verrà chiesto di consentire le chiamate non autenticate. Se vuoi accedere immediatamente al tuo servizio, rispondi y
e rispondi "Sì" al messaggio "consenti non autenticati". Se il servizio è privato e le richieste devono includere l'autenticazione, rispondi "n
" alla richiesta "consente di eseguire l'autenticazione non autenticata".
Se il servizio è pubblico, utilizza l'URL visualizzato dopo un deployment riuscito per visitare il container di cui hai eseguito il deployment. Se il servizio è privato, utilizza il seguente comando curl
per richiamarlo:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Se hai eseguito il deployment in Cloud Run for Anthos, vedi Accesso al servizio di cui hai eseguito il deployment.
Esegui la pulizia
Se hai creato un nuovo progetto per questo tutorial, elimina il progetto. Se hai utilizzato un progetto esistente e vuoi mantenerlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- 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.
Eliminazione delle risorse del tutorial
Elimina il servizio Cloud Run di cui hai eseguito il deployment in questo tutorial:
gcloud run services delete SERVICE-NAME
Dove SERVICE-NAME è il nome del servizio che hai scelto.
Puoi anche eliminare i servizi Cloud Run da Google Cloud Console.
Rimuovi la configurazione dell'area geografica predefinita di gcloud che hai aggiunto durante la configurazione del tutorial:
gcloud config unset run/region
Rimuovi la configurazione del progetto:
gcloud config unset project
Passaggi successivi
- Per scoprire di più sul contratto che i container devono rispettare per poter essere sottoposti a deployment in Cloud Run, vedi Contratto container.
- Per automatizzare le build e i deployment dei tuoi servizi Cloud Run utilizzando i trigger di Cloud Build, configura il deployment continuo.
- Per saperne di più su come utilizzare e personalizzare Jib, consulta la pagina relativa al repository GitHub di Jib's.