Jib erstellt Container, ohne ein Dockerfile zu verwenden oder eine Docker-Installation zu erfordern. Sie können Jib in den Jib-Plug-ins für Maven oder Gradle oder in der Jib-Java-Bibliothek verwenden.
Was macht Jib?
Jib übernimmt alle Schritte beim Packen Ihrer Anwendung in ein Container-Image. Sie müssen keine Best Practices für die Erstellung von Dockerfiles oder die Installation von Docker kennen.
Docker-Build-Ablauf:
Jib-Build-Fluss:
Jib organisiert Ihre Anwendung in verschiedenen Ebenen, Abhängigkeiten, Ressourcen und Klassen und verwendet das Caching der Docker-Image-Ebene, um Builds schnell zu halten, indem nur Änderungen neu erstellt werden. Die Ebenenorganisation und das kleine Basis-Image von Jib halten die Gesamtgröße des Images klein, was die Leistung und Portabilität verbessert.
Hinweis
- 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.
- Laden Sie Java herunter und installieren und konfigurieren Sie es, sofern nicht bereits geschehen.
- Installieren Sie Maven 3.5 oder höher.
- Installieren und initialisieren Sie Google Cloud CLI.
- Authentifizieren Sie sich mit der Google Cloud-Befehlszeile als Docker Credential Assistent bei Container Registry:
gcloud auth configure-docker
Weitere Möglichkeiten zur Authentifizierung finden Sie in der Dokumentation zur Jib-Konfiguration.
Mit Jib erstellen
Wählen Sie ein vorhandenes Projekt aus und öffnen Sie den Quellordner oder klonen Sie das Beispiel mit dem folgenden Befehl:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/run/helloworld
Fügen Sie das Plug-in zu
pom.xml
hinzu:<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>
Ersetzen
- PROJECT durch Ihre Google Cloud-Projekt-ID.
- IMAGE durch den Namen Ihres Images.
Wenn Sie
pom.xml
nicht ändern möchten, können Sie den folgenden Befehl verwenden:mvn compile com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=gcr.io/PROJECT/IMAGE
Erstellen Sie das Image und übertragen Sie es in eine Container Registry:
mvn compile jib:build
Sie können den Erfolg prüfen, indem Sie Ihren Container in der Container Registry aufrufen.
Optional: Wenn Sie Docker installiert haben, können Sie Builds auf Ihrer lokalen Docker-Installation erstellen, sodass Sie das Image prüfen oder als anderen lokalen Container ausführen können:
mvn compile jib:dockerBuild
Zusätzliche Anpassungen
Sie können Ihre Jib-Builds ähnlich wie Dockerfiles anpassen, z. B. Umgebungsvariablen hinzufügen und ein Basis-Image auswählen.
Umgebungsvariablen hinzufügen
Sie können Ihrem Build Umgebungsvariablen ähnlich wie die Anweisung ENV
in einem Dockerfile hinzufügen:
<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>
Ersetzen
- PROJECT durch Ihre Google Cloud-Projekt-ID.
- IMAGE durch den Namen Ihres Images.
- ENV_VAR mit
NAME
. - VALUE durch den gewünschten Wert.
Ihre Anwendung antwortet nun mit Hello <var>VALUE</var>!
Ändern Sie das Basis-Image
Das Basis-Image entspricht der FROM
-Anleitung in einem Dockerfile. Das Basis-Image kann durch Ändern des Felds from.image
aktualisiert werden.
Wenn Sie eine Shell zur Fehlerbehebung hinzufügen möchten, legen Sie das Basis-Image auf alpine:3
oder openjdk:VERSION
fest (falls Java erforderlich ist).
Zum Hinzufügen von Systempaketen müssen Sie ein Basis-Image mit diesen Paketen erstellen. Weitere Informationen finden Sie unter Container erstellen.
<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>
Versuchen Sie, das Feld from.image
auf ein anderes Java-Basis-Image wie openjdk:8-alpine
zu aktualisieren.
Anpassen anderer Java-Aspekte
Jib unterstützt Java-Laufzeitkonfigurationen, die für die Ausführung Ihrer Anwendung erforderlich sein können. Weitere Anpassungen finden Sie unter Erweiterte Nutzung.
Code versenden
gcloud-Standardeinstellungen einrichten
So konfigurieren Sie gcloud mit Standardeinstellungen für den Cloud Run-Dienst:
Legen Sie ein Standardprojekt fest:
gcloud config set project PROJECT_ID
Ersetzen Sie PROJECT_ID durch den Namen des Projekts, das Sie für diese Anleitung erstellt haben.
Konfigurieren Sie gcloud für die von Ihnen ausgewählte Region:
gcloud config set run/region REGION
Ersetzen Sie REGION durch die unterstützte Cloud Run-Region Ihrer Wahl.
Cloud Run-Standorte
Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.
Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden.
Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten liegt, aber Sie sollten den Standort der anderen Google Cloud-Produkte berücksichtigen, die von Ihrem Cloud Run-Dienst verwendet werden.
Die gemeinsame Nutzung von Google Cloud-Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.
Cloud Run ist in diesen Regionen verfügbar:
Unterliegt Preisstufe 1
asia-east1
(Taiwan)asia-northeast1
(Tokio)asia-northeast2
(Osaka)europe-north1
(Finnland) Niedriger CO2-Werteurope-southwest1
(Madrid) Niedriger CO2-Ausstoßeurope-west1
(Belgien) Niedriger CO2-Ausstoßeurope-west4
(Niederlande)europe-west8
(Mailand)europe-west9
(Paris) Niedriger CO2-Ausstoßus-central1
(Iowa) Niedriges CO2us-east1
(South Carolina)us-east4
(Northern Virginia)us-east5
(Columbus)us-west1
(Oregon) Niedriger CO2-Ausstoß
Unterliegt Preisstufe 2
asia-east2
(Hongkong)asia-northeast3
(Seoul, Südkorea)asia-southeast1
(Singapur)asia-southeast2
(Jakarta)asia-south1
(Mumbai, Indien)asia-south2
(Delhi, Indien)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warschau, Polen)europe-west2
(London, Vereinigtes Königreich)europe-west3
(Frankfurt, Deutschland)europe-west6
(Zürich, Schweiz) Niedriger CO2-Ausstoßnorthamerica-northeast1
(Montreal) Niedriger CO2-Ausstoßnorthamerica-northeast2
(Toronto) Niedriger CO2-Ausstoßsouthamerica-east1
(São Paulo, Brasilien) Niedriges CO2southamerica-west1
(Santiago, Chile)us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie die Region in der Cloud Console im Cloud Run-Dashboard aufrufen.
In Cloud Run bereitstellen
Stellen Sie Ihren Container über die gcloud-Befehlszeile für Cloud Run oder Cloud Run for Anthos aus Container Registry bereit.
Stellen Sie das Container-Image mit dem folgenden Befehl bereit:
gcloud run deploy SERVICE-NAME \ --image gcr.io/PROJECT/IMAGE \ --platform managed
Ersetzen
- SERVICE-NAME durch den von Ihnen ausgewählten Dienstnamen.
- PROJECT durch Ihre Google Cloud-Projekt-ID.
- IMAGE durch den Namen Ihres Images.
Beachten Sie, dass das Container-Image für den Dienst und die Region (Cloud Run) oder den Cluster (Cloud Run for Anthos in Google Cloud) bereitgestellt wird, die Sie zuvor unter gcloud einrichten konfiguriert haben.
Bei der Bereitstellung in Cloud Run werden Sie aufgefordert, nicht authentifizierte Aufrufe zuzulassen. Wenn Sie sofort auf Ihren Dienst zugreifen möchten, antworten Sie mit y
und "Ja" auf die Aufforderung "Nicht authentifiziert zulassen". Wenn Ihr Dienst privat ist und Anfragen Authentifizierung enthalten müssen, antworten Sie mit n
und "Nein" auf die Aufforderung "Nicht authentifiziert zulassen".
Wenn Ihr Dienst öffentlich ist, verwenden Sie die URL, die nach einer erfolgreichen Bereitstellung angezeigt wird, um den bereitgestellten Container aufzurufen. Wenn der Dienst privat ist, rufen Sie ihn mit dem folgenden curl
-Befehl auf:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Informationen zur Bereitstellung in Cloud Run für Anthos finden Sie unter Zugriff auf den bereitgestellten Dienst.
Bereinigen
Wenn Sie ein neues Projekt für diese Anleitung erstellt haben, löschen Sie das Projekt. Wenn Sie ein vorhandenes Projekt verwendet haben und es beibehalten möchten, ohne die Änderungen in dieser Anleitung hinzuzufügen, löschen Sie die für die Anleitung erstellten Ressourcen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.
So löschen Sie das Projekt:
- 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.
Anleitungsressourcen löschen
Löschen Sie den Cloud Run-Dienst, den Sie in dieser Anleitung bereitgestellt haben:
gcloud run services delete SERVICE-NAME
Dabei ist SERVICE-NAME der von Ihnen ausgewählte Dienstname.
Sie können Cloud Run-Dienste auch über die Google Cloud Console löschen.
Entfernen Sie die Konfiguration der Standardregion gcloud, die Sie während der Einrichtung für die Anleitung hinzugefügt haben:
gcloud config unset run/region
Entfernen Sie die Projektkonfiguration:
gcloud config unset project
Weitere Informationen
- Im Containervertrag können Sie nachlesen, welche Bedingungen Container für eine Bereitstellung in Cloud Run einhalten müssen.
- Durch die Einrichtung einer kontinuierlichen Bereitstellung und die Verwendung von Cloud-Build-Triggern können Sie die Build-Erstellung und die Bereitstellung von Cloud Run-Diensten automatisieren.
- Weitere Informationen zur Verwendung und Anpassung von Jib finden Sie im GitHub-Repository von Jib.