Als ich kürzlich eine Anwendung auf einer Containerplattform bereitstellte, musste ich beim Verpacken ein Docker-Image generieren. Ich suchte zuerst im Internet nach dem Docker-Maven-Plugin-Plugin, aber es war sehr umständlich zu verwenden und ich musste viele zusätzliche Konfigurationen in Maven und Dockerfile vornehmen. Später sah ich auf dem offiziellen Github, dass der Autor die Verwendung des neuen Plug-Ins Dockerfile-Maven-Plugin empfahl, also ersetzte ich es durch dieses, aber im Internet gibt es nur wenige relevante Informationen zu diesem Plug-In. Notieren Sie es hier POM-Konfiguration<Plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>Maven-Bereitstellungs-Plugin</artifactId> <Konfiguration> <skip>wahr</skip> </Konfiguration> </plugin> <!-- Dockerfile Maven-Plugin --> <Plugin> <groupId>com.spotify</groupId> <artifactId>Dockerfile-Maven-Plugin</artifactId> <version>1.4.10</version> <Hinrichtungen> <!--<Ausführung>--> <!--<id>Standard</id>--> <!--<Ziele>--> <!--<!–Wenn Sie keine Docker-Verpackung verwenden möchten, kommentieren Sie dieses Ziel aus–>--> <!--<goal>bauen</goal>--> <!--<goal>drücken</goal>--> <!--</goals>--> <!--</execution>--> </Ausführungen> <Konfiguration> <repository>docker-reg.****.com/feedback/${artifactId}-${profiles.active}</repository> <tag>${project.version}</tag> <BuildArgs> <JAR_FILE>Ziel/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </Konfiguration> </plugin> Setting.xml-KonfigurationDiese Datei befindet sich im Maven-Verzeichnis und kann mit cd $M2_HOME/conf aufgerufen werden. Fügen Sie ein com.spotify in PluginGroups hinzu <pluginGruppen> <pluginGroup>com.spotify</pluginGroup> </pluginGroups> AnmeldestatusAnmeldung erforderlichBei der Verifizierung der Anmeldung gibt es zahlreiche Fallstricke. Wenn Sie Ihr Lager in Habor auf privat setzen, müssen Sie sich anmelden und die offizielle Konfiguration wie folgt durchführen. <Plugin> <groupId>com.spotify</groupId> <artifactId>Dockerfile-Maven-Plugin</artifactId> <version>${version}</version> <Konfiguration> <Benutzername>repoBenutzername</Benutzername> <password>repoPassword</password> <repository>${docker.image.prefix}/${project.artifactId}</repository> <BuildArgs> <JAR_FILE>Ziel/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </Konfiguration> </plugin> Kein Login erforderlichDa ich k8s jedoch so konfiguriert habe, dass das Image automatisch von Habor abgerufen wird, habe ich es auf öffentlich gesetzt. In diesem Fall ist keine Anmeldung erforderlich, aber manchmal schlägt die Ausführung fehl. Zu diesem Zeitpunkt müssen Sie die Konfiguration dieser Website in ~/.docker/config.json löschen. cat ~/.docker/config.json { "Authentisierungen": { "192.168.87.110:5000": { "auth": "YWRtaW46JKDtaW4xMjM=" }(hier löschen) }, "HttpHeaders": { "Benutzer-Agent": "Docker-Client/18.09.0 (linux)" } } Wenn nach der Bestätigung, dass dies leer ist, immer noch ein Fehler gemeldet wird, können Sie „Docker Login ...“ erneut ausführen, und es wird erfolgreich sein. Maven-Konfiguration mehrerer ModuleBei mehreren Modulen muss das Verpackungs-Plugin im Anwendungs-Untermodul platziert werden. Wenn es im Stamm-POM platziert wird, schlägt die Verpackung fehl. Die folgenden Situationen:
In diesem Fall können wir es in zwei Schritte unterteilen Der erste Schritt besteht darin, alle Module im Stammverzeichnis zu packen mvn clean package -P test Der zweite Schritt besteht darin, den Bereitstellungsbefehl im Untermodul auszuführen, um das Image zu verpacken mvn dockerfile:build dockerfile:push Auf diese Weise kann das Submodul erfolgreich in einen Spiegel verpackt und gepusht werden. JenkinsNach dem lokalen Test müssen Sie diesen Prozess nach Jenkins verschieben und einige Konfigurationen vornehmen. Docker auf dem Jenkins-Server installierenIch werde hier nicht ins Detail gehen. Mavens setting.xml und andere Konfigurationen sind dieselben wie die lokalen. Ändern der Jenkins-ProjektkonfigurationDa das Projekt an diesem Punkt zweimal gepackt werden muss (einmal im Stammverzeichnis und das zweite Mal als Spiegel im Unterverzeichnis), muss der MVN-Befehl zweimal ausgeführt werden. Dies unterscheidet sich von zuvor, sodass bei der ersten Ausführung immer noch das Jenkins Build-Modul verwendet wird. Die zweite Ausführung wird in den Post-Schritten platziert und per Befehl ausgeführt cd Untermodulverzeichnis mvn clean package -P $env dockerfile:build dockerfile:push Auf diese Weise können Sie die Schritte zum Verpacken und Erstellen von Bildern abschließen. Dies ist das Ende dieses Artikels über die Gebrauchsanweisung für das Dockerfile-Maven-Plugin. Weitere Informationen zur Verwendung des Dockerfile-Maven-Plugins 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:
|
<<: So handhaben Sie lange Daten bei der Anzeige in HTML
>>: Einführung in den strikten Modus von JavaScript verwenden Sie strikt
Docker ist ein Verwaltungstool, das Prozesse als ...
Inhaltsverzeichnis Überblick Typzusicherungen in ...
Beispielcode: importiere java.util.Random; import...
Da li ein Element auf Blockebene ist und standard...
Verwenden von Javascript zum Implementieren eines...
Inhaltsverzeichnis 1. Kapselungs-API 2. Globale T...
Vor Kurzem habe ich mit der Aktualisierung meines ...
Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....
Wenn ich beispielsweise einen Jenkins-Server in m...
In vielen Projekten ist es notwendig, die Funktio...
Inhaltsverzeichnis Vorwort 1. Weniger 2. Importie...
1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...
Der Grund ist dieser Ich wollte eine Mocker-Platt...
1. Einleitung Wenn Sie früher mit dem Schreiben v...
I. Erläuterung des strikten Modus Gemäß den Einsc...