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

Detaillierte Erklärung zu anonymen Slots und benannten Slots in Vue

Inhaltsverzeichnis 1. Anonyme Slots 2. Benannte S...

Analyse des kumulativen Aggregationsprinzips von MySQL und Anwendungsbeispiele

Dieser Artikel veranschaulicht anhand von Beispie...

Implementierung der Docker-Batch-Container-Orchestrierung

Einführung Der Dockerfile-Build-Ausführungsvorgan...

JavaScript-Implementierung eines Karussellbeispiels

In diesem Artikel wird der spezifische Code für J...

So verwenden Sie Lottie-Animationen in React Native-Projekten

Lottie ist eine von Airbnb entwickelte Open-Sourc...

Grundlegendes Verständnis und Verwendung der HTML-Auswahloption

Detaillierte Erklärung von HTML (Option auswählen)...

Detaillierte Analyse des temporären JDBC- und MySQL-Tablespace

Hintergrund Temporäre Tablespaces werden verwende...

Detaillierte Analyse der Verwendungs- und Anwendungsszenarien von Slots in Vue

Was sind Slots? Wir wissen, dass in Vue nichts in...