Einführung in Jib Jib ist eine von Google entwickelte Bibliothek, die Docker- und OCI-Images von Java-Anwendungen direkt erstellen kann. Sie wird in Form von Maven- und Gradle-Plug-Ins bereitgestellt. Mit Jib können Java-Entwickler zum Erstellen von Containern die ihnen vertrauten Java-Tools verwenden. Jib ist ein schnelles und einfaches Tool zum Erstellen von Container-Images, das alle erforderlichen Schritte zum Verpacken Ihrer Anwendung in ein Container-Image übernimmt. Sie müssen dafür weder eine Docker-Datei schreiben noch Docker installieren und es lässt sich direkt in Maven und Gradle integrieren – fügen Sie einfach das Plug-In zu Ihrem Build hinzu, und Sie können Ihre Java-Anwendung sofort in einen Container packen. Jib Open Source-Adresse: https://github.com/GoogleContainerTools/jib Allgemeiner Docker-Build-Prozess Jib-Build-Prozess Jib-Integration Das Projekt ist Spring Cloud, Version Hoxton.SR1. Um Jib zu integrieren, müssen Sie nur das Jib-Plugin zu POM hinzufügen. <Plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>${jib.version}</version> </plugin> Jib-bezogene Komplettkonfiguration <Eigenschaften> <!-- Jib-Docker-Konfiguration--> <!-- Jib-Version --> <jib.version>2.2.0</jib.version> <!-- Ob die Jib-Verpackung übersprungen werden soll --> <jib.skip>wahr</jib.skip> <!-- Name des Warehouse-Bildes --> <jib.repository.name>akk-system</jib.repository.name> <!-- Startklasse --> <jib.main.class>com.akk.GatewayApplication</jib.main.class> <!-- Benutzername für die Anmeldung beim Warehouse --> <REGISTRY_USERNAME>222222222222</REGISTRY_USERNAME> <!-- Lager-Login-Passwort --> <REGISTRIERUNGSPASSWORT>111111111111</REGISTRIERUNGSPASSWORT> </Eigenschaften> <Plugins> <Plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> <version>${jib.version}</version> <Konfiguration> <überspringen>${jib.skip}</überspringen> <!-- Konfigurieren Sie das Basis-Image --> <von> <image>openjdk:8-jre-alpine</image> </von> <!-- Push-Adresse, Warehouse-Name und Spiegelname konfigurieren--> <bis> <image>registry.cn-hangzhou.aliyuncs.com/akk_java/${jib.repository.name}</image> <Tags> <!-- <tag>${jib.repository.name}</tag>--> <!-- <tag>${version}</tag>--> </tags> <Berechtigung> <Benutzername>${REGISTRY_USERNAME}</Benutzername> <Passwort>${REGISTRY_PASSWORD}</Passwort> </auth> </to> <!--Private Server sind http statt https. Standardmäßig pusht Jib nicht auf private Server, die nicht https verwenden. Private Server werden hinzugefügt, öffentliche Server jedoch nicht. --> <!-- <allowInsecureRegistries>true</allowInsecureRegistries>--> <Behälter> <Hauptklasse>${jib.main.class}</Hauptklasse> <Beschriftungen> <name>${Artefakt-Id}</name> </Beschriftungen> </container> </Konfiguration> <!--An Maven-Lebenszyklus gebunden--> <!-- <Ausführungen>--> <!-- <Ausführung>--> <!-- <phase>Paket</phase>--> <!-- <Ziele>--> <!-- <goal>bauen</goal>--> <!-- </goals>--> <!-- </execution>--> <!-- </executions>--> </plugin> </plugins> Parameterbeschreibung: An diesem Punkt können Sie den mit dem Jib-Plugin verbundenen Inhalt im Maven-Menü von idea sehen: Beispiel: Gateway-Modul (muss das Image packen), die POM-Konfiguration ist wie folgt <?xml version="1.0" encoding="UTF-8"?> <Projekt xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <übergeordnetes Element> <artifactId>akk-system</artifactId> <groupId>com.akk</groupId> <version>0.0.1-SNAPSHOT</version> </übergeordnet> <modelVersion>4.0.0</modelVersion> <artifactId>Gateway</artifactId> <Eigenschaften> <!-- Jib-Docker-Konfiguration--> <jib.version>2.2.0</jib.version> <jib.skip>falsch</jib.skip> <jib.repository.name>akk-gateway</jib.repository.name> <jib.main.class>com.akk.GatewayApplication</jib.main.class> </Eigenschaften> <Abhängigkeiten> <Abhängigkeit> <groupId>org.springframework.cloud</groupId> <artifactId>Spring-Cloud-Starter-Gateway</artifactId> </Abhängigkeit> <Abhängigkeit> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> </Abhängigkeit> </Abhängigkeiten> </Projekt> Allgemeines öffentliches Abhängigkeitspaket pom (das Image muss nicht verpackt werden): <?xml version="1.0" encoding="UTF-8"?> <Projekt xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <übergeordnetes Element> <artifactId>akk-system</artifactId> <groupId>com.akk</groupId> <version>0.0.1-SNAPSHOT</version> </übergeordnet> <artifactId>allgemein</artifactId> <version>0.0.1-SNAPSHOT</version> <Eigenschaften> <!-- Jib-Docker-Konfiguration--> <jib.version>2.2.0</jib.version> <jib.skip>wahr</jib.skip> <jib.repository.name>akk-system</jib.repository.name> <jib.image.name>akk-system</jib.image.name> </Eigenschaften> <Abhängigkeiten> <!-- Abhängigkeitsinformationen --> </Abhängigkeiten> </Projekt> Darunter decken die Eigenschaften die relevante Parameterkonfiguration von Jib ab. Verpackungsbild Führen Sie Nachdem die Verpackung abgeschlossen ist, überprüfen Sie das lokale Docker-Image (der Befehl jib:dockerBuild lädt das Image nicht hoch, aber der Befehl jib:build lädt das Image hoch). Packen und Hochladen des Bildes Führen Sie Docker-Login --username=Benutzername --password=Passwort registry.cn-hangzhou.aliyuncs.com Ziehen Sie das Bild Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-gateway:latest Docker-Bereitstellungsprojekt Die Bereitstellung von Microservice-Projekten umfasst viele Module und erfolgt im Allgemeinen in einer verteilten Clusterumgebung. Die manuelle Bereitstellung ist daher umständlich. Sie können automatisierte Bereitstellungstools wie Jenkins verwenden. Nachdem Sie Jenkins zum Verpacken und Hochladen des Images verwendet haben, melden Sie sich beim Remote-Server an und führen Sie das Skript aus, um es zu starten. wie: #!/bin/bash # Melden Sie sich beim Docker-Repository andocker login --username=Benutzername --password=Passwort registry.cn-hangzhou.aliyuncs.com # Stoppen Sie den laufenden Container docker ps | grep akk_java | awk '{print $1}' | xargs docker stop # Löschen Sie den Container docker ps -a -q | grep akk_java | awk '{print $1}' | xargs docker rm # Image-Datei abfragen und Docker-Images löschen | grep akk_java | awk '{print $3}' | xargs docker rmi # Ziehen Sie das Image docker pull registry.cn-hangzhou.aliyuncs.com/akk_java/akk-user:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-gateway:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-task:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-store:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-pay:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-app-api:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-sso-auth:latest Docker-Pull-Registrierung.cn-hangzhou.aliyuncs.com/akk_java/akk-seata:latest Führen Sie nach dem erneuten Abrufen des Images den Befehl Damit ist dieser Artikel über die detaillierten Schritte zur Verwendung von Jib für die Docker-Bereitstellung in Spring Cloud abgeschlossen. Weitere relevante Inhalte zur Docker-Bereitstellung in Spring Cloud finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Der gesamte Prozessdatensatz der rekursiven Komponentenkapselung von Vue3
>>: Detaillierte Erklärung der Sperrstruktur in MySQL
In diesem Artikelbeispiel wird der spezifische Ja...
Hier sind die detaillierten Schritte: 1. Überprüf...
Lösung des Problems Bootstrap ist ein CSS-Framewo...
Swap-Speicher bedeutet hauptsächlich, dass das Sy...
einführen Dieser Artikel basiert auf React + antd...
In diesem Artikel erfahren Sie mehr über die Opti...
In diesem Artikelbeispiel wird die Implementierun...
Bisher kannten wir mehrere Hintergrundattribute i...
Was ist SSH? Administratoren können sich remote a...
Vorwort Als MySQL den Standarddatenbankpfad änder...
1 Einleitung Im Artikel „PostgreSQL mit Docker st...
Ein Textfeld mit Dropdown-Liste ermöglicht es Ben...
1. Scroll-Ansicht Beim vertikalen Scrollen müssen...
Wir müssen lediglich einen beliebigen Texteditor ö...
Die Testumgebung ist mit MariaDB 5.7 eingerichtet...