Hintergrund Um die Docker-Containerisierung während unseres Entwicklungsprozesses zu unterstützen, verwenden wir im Allgemeinen Maven zum Kompilieren und Verpacken und anschließenden Generieren von Bildern, was die Online-Effizienz erheblich verbessern kann und außerdem eine schnelle und dynamische Kapazitätserweiterung und ein schnelles Rollback ermöglicht, was wirklich praktisch ist. Das Plugin „Docker-Maven-Plugin“ soll uns dabei helfen, automatisch Bilder zu generieren und sie durch einfache Konfiguration in Maven-Projekten in das Lager zu übertragen. Spotify, Stoff8 Die beiden wichtigsten hier verwendeten Plug-Ins sind Spotify und Fabric8. ... - Konfigurieren Sie das Dockerfile über XML oder mounten Sie ein externes Dockerfile, um ein Image zu erstellen, indem Sie die Docker-Remote-API aufrufen. Die gesamte Containerisierung der Pig-Microservice-Plattform basiert auf dieser Konstruktion <Plugin> <groupId>com.spotify</groupId> <artifactId>Docker-Maven-Plugin</artifactId> ... -Konfigurieren Sie das per XML definierte Dockerfile oder mounten Sie ein externes Dockerfile </plugin> <Plugin> <groupId>io.fabric8</groupId> <artifactId>Docker-Maven-Plugin</artifactId> ... -Konfigurieren Sie das per XML definierte Dockerfile oder mounten Sie ein externes Dockerfile </plugin> Führen Sie den entsprechenden Plug-In-Zyklus aus: mvn docker:build und mvn docker:push Ausleger Die Menge an Code, die sich tatsächlich bei jeder Veröffentlichung eines Projekts ändert, ist nicht groß, insbesondere ist die Möglichkeit von Änderungen in den abhängigen Jars gering. Wenn die ersten beiden Plug-Ins zum Erstellen des Images verwendet werden, wird jedes Mal ein vollständiger Build durchgeführt, was zu einer Verschwendung von Speicher- und Bandbreitenressourcen führt. Jib ist ein im Juli 2018 von Google veröffentlichtes Tool zum Erstellen von Images für Java-Anwendungen (unterstützt Maven und Gradle). Der Vorteil besteht darin, dass es den Build-Cache wiederverwenden, den Build beschleunigen und das Übertragungsvolumen reduzieren kann. <!--Konfigurieren Sie das Dockerfile über XML, das im Wesentlichen mit dem externen Dockerfile identisch ist --> <Plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-plugin</artifactId> </plugin> mvn jib:dockerBuild Probleme mit den oben genannten drei Lösungen Im eigentlichen Entwicklungsprozess erstellen die meisten Spring Boot-Projekte Dockerfiles auf die gleiche Weise und müssen nicht über XML oder externe Dockerfiles neu definiert werden. Die oben genannten Plugins erfordern relativ gute Kenntnisse der Dockerfile-Definitionen, was nicht entwicklerfreundlich ist. Es gibt keinen guten Grund, die Jar-Layering-Technologie nach Spring Boot 2.3 zu verwenden. Lösung Spring Boot 2.4 hat sein eigenes Docker-Build-Tool eingeführt, das in das ursprüngliche Spring-Boot-Maven-Plugin integriert ist. Sie müssen nur das entsprechende Ziellager und die Hostinformationen konfigurieren, um den Image-Aufbau abzuschließen. Die folgende Konfiguration kann die obige Abbildung vervollständigen. Ohne Docker auf der Entwicklungsmaschine zu installieren, wird das Image über die Docker Remote API von 192.168.0.10 erstellt und im Image Warehouse von 192.168.0.20 veröffentlicht. <Plugin> <groupId>org.springframework.boot</groupId> <artifactId>Spring-Boot-Maven-Plugin</artifactId> <Konfiguration> <Bild> <name>192.168.0.20/pig4cloud/${project.artifactId}</name> <!-- Automatisch pushen, nachdem der Build ausgeführt wurde --> <veröffentlichen>wahr</veröffentlichen> </image> <!--Konfigurieren Sie die Build-Host-Informationen. Für diese Maschine ist keine Konfiguration erforderlich--> <Docker> <host>http://192.168.0.10:2375</host> <tlsVerify>falsch</tlsVerify> <Registrierung veröffentlichen> <username>Benutzername</username> <password>Passwort</password> <url>192.168.0.20</url> </publishRegistry> </docker> </Konfiguration> </plugin> Führen Sie den folgenden Befehl aus, um die Image-Erstellung und die automatische Freigabe abzuschließen mvn spring-boot:build-image Zusatzbemerkungen Die Docker-Hostkonfiguration wird nicht wirksam Der Knoten ist wie in der folgenden Abbildung ① dargestellt konfiguriert, aber ② meldet einen Fehler, der darauf hinweist, dass der Host inkonsistent ist Überprüfen Sie, ob die Umgebungsvariable $DOCKER_HOST lokal konfiguriert ist. Nach dem Lesen des Quellcodes habe ich festgestellt, dass diese Variable zuerst gelesen wird. ⋊> ~ echo $DOCKER_HOST 11:07:51 tcp://172.17.0.111:2375 Netzwerkunterstützung Während des Build-Prozesses werden einige Protokolle abgefangen. Im Folgenden müssen etwa 100 MB zugehörige Abhängigkeiten von GitHub heruntergeladen werden. Dieser Prozess schlägt wahrscheinlich fehl. Es wird empfohlen, dieses Problem durch die Konfiguration eines Proxys oder die Verwendung eines fremden ECS zu lösen. :: Spring Boot :: (v2.4.0) [INFO] > Ersteller wird ausgeführt [INFO] [Ersteller] Herunterladen von https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jre8u275+1-linux-amd64.tar.gz [INFO] [Ersteller] JVMKill Agent 1.16.0: Beitrag zur Ebene [INFO] [Ersteller] Herunterladen von https://github.com/cloudfoundry/jvmkill/releases/download/v1.16.0.RELEASE/jvmkill-1.16.0-RELEASE.so [INFO] [Ersteller] Herunterladen von https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.6.0/spring-cloud-bindings-1.6.0.jar [INFO] [Ersteller] Prüfsumme wird überprüft [INFO] [Ersteller] 192.168.0.20/pig4cloud/demo:latest [INFO] [INFO] Image „192.168.0.20/pig4cloud/demo:latest“ erfolgreich erstellt [INFO] > Bild „192.168.0.20/pig4cloud/demo:latest“ wird zu 100 % gepusht [INFO] > Bild '192.168.0.20/pig4cloud/demo:latest' gepusht [INFO] ERFOLG AUFBAUEN Dies ist das Ende dieses Artikels über die neue Funktion von Spring Boot 2.4 zum Erstellen von Docker-Images mit einem Klick. Weitere Informationen zum Erstellen von Docker-Images mit Spring Boot 2.4 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Verwenden Sie MySQL, um die von der URL zurückgegebenen HTTP-GET-Anforderungsdaten aufzuzeichnen
>>: Testen des Hyperlink-Öffnungsziels
Das Raspberry Pi-Modell ist 4b, 1 G RAM. Das Syst...
Das Vue-Plugin meldet einen Fehler: Vue.js wurde ...
1. Reproduktion des Problems: Zählen Sie die Gesa...
Ich hatte nichts zu tun, also kaufte ich zum Lern...
Inhaltsverzeichnis Einführung Wie sieht ein Itera...
Vor kurzem traten bei der Bereitstellung der Umge...
Als ich php56 mit brew auf mac installierte, stie...
Englisch: Ein Link-Tag vervollständigt href im IE...
1. Melden Sie sich bei der MySQL-Datenbank an mys...
Inhaltsverzeichnis 1. Node erstellt HTTP-Server 2...
Aufgrund des Standard-Bridge-Netzwerks ändert sic...
MySQL 8 bringt völlig neue Erfahrungen mit sich, ...
Das Geschäftsszenario des Unternehmens erfordert ...
Closure-Implementierung privater Variablen Privat...
Vorwort binlog ist eine binäre Protokolldatei, di...