Zusammenfassung der Dockerfile-Maven-Plugin-Nutzungsanleitung

Zusammenfassung der Dockerfile-Maven-Plugin-Nutzungsanleitung

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>-->
                            <!--&lt;!&ndash;Wenn Sie keine Docker-Verpackung verwenden möchten, kommentieren Sie dieses Ziel aus&ndash;&gt;-->
                            <!--<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-Konfiguration

Diese 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>

Anmeldestatus

Anmeldung erforderlich

Bei 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 erforderlich

Da 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 Module

Bei 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:

  • -App
  • -gemeinsam
  • -Datei
  • -Mail
  • -Anwendung
  • ​ -pom.xml

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.

Jenkins

Nach dem lokalen Test müssen Sie diesen Prozess nach Jenkins verschieben und einige Konfigurationen vornehmen.

Docker auf dem Jenkins-Server installieren

Ich werde hier nicht ins Detail gehen. Mavens setting.xml und andere Konfigurationen sind dieselben wie die lokalen.

Ändern der Jenkins-Projektkonfiguration

Da 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.

Bildbeschreibung hier einfügen

Die zweite Ausführung wird in den Post-Schritten platziert und per Befehl ausgeführt

Mkb3FJ.md.png

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:
  • Das Docker-Maven-Plugin-Plugin kann das entsprechende JAR-Paket nicht abrufen
  • Detaillierte Verwendung des Docker-Maven-Plugins
  • Verwendung des Maven-Plugins docker-maven-plugin
  • minimalistisches Dockerfile-Maven-Plugin-Tutorial (empfohlen)
  • Erfahren Sie, wie Sie mit dem Docker-Maven-Plugin die Bereitstellung automatisieren

<<:  So handhaben Sie lange Daten bei der Anzeige in HTML

>>:  Einführung in den strikten Modus von JavaScript verwenden Sie strikt

Artikel empfehlen

Zusammenfassung der mathematischen Symbole in Unicode

In der Mathematik, Physik und einigen wissenschaf...

Upgrade der Docker-Version von MySQL 5.7 auf MySQL 8.0.13, Datenmigration

Inhaltsverzeichnis 1. Sichern Sie die alten MySQL...

Was sind die Vorteile von MySQL MGR?

MGR (MySQL Group Replication) ist eine neue Funkt...

Lösen Sie das Problem des unzureichenden Docker-Festplattenspeichers

Nachdem der Server, auf dem sich Docker befindet,...

Ubuntu kompiliert Kernelmodule und der Inhalt wird im Systemprotokoll angezeigt

Inhaltsverzeichnis 1.Linux-Anmeldeschnittstelle 2...

Müssen Designer das Programmieren lernen?

Oftmals wird nach der Fertigstellung eines Webdes...

Verstehen von MySQL-Deadlock-Routinen durch eindeutige Index-S-Sperre und X-Sperre

In „MySQL-Deadlock-Probleme anhand des Quellcodes...

Detaillierte Erklärung verschiedener Join-Zusammenfassungen von SQL

SQL Left Join, Right Join, Inner Join und Natural...

Beispiele für die Verwendung von HTML-Listen-Tags dl, ul, ol

Code kopieren Der Code lautet wie folgt: <!-- ...

Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

Inhaltsverzeichnis Indexmodell B+Baum Indexauswah...

Vertikales und horizontales Aufteilen von MySQL-Tabellen

Vertikale Teilung Vertikale Aufteilung bezieht si...

Detaillierte Erläuterung des Vue-Routing-Routers

Inhaltsverzeichnis Routing-Plugins modular nutzen...