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

Einführung in Keyword-Design-Methoden im Webdesign

Häufig ignorieren wir beim Erstellen der Homepage ...

Implementierung der Installation und Deinstallation von CUDA und CUDNN in Ubuntu

Inhaltsverzeichnis Vorwort Installieren des Grafi...

Hast du genau verstanden Schlagworte Definition Verwendung

Vorwort : Heute wurde ich gefragt: „Haben Sie das ...

JavaScript zum Erzielen eines Digitaluhreffekts

In diesem Artikelbeispiel wird der spezifische Ja...

So gehen Sie mit vergessenen Passwörtern in Windows Server 2008 R2 um

Was tun, wenn Sie Windows Server 2008R2 vergessen...

So verwenden Sie Port 80 in Tomcat unter Linux

Anwendungsszenario In vielen Fällen installieren ...

Beispiel für automatischen Stoppeffekt nach Text-Scrollen

Die Wirkung ist ganz einfach: Kopieren Sie einfach...

JavaScript-Closures erklärt

Inhaltsverzeichnis 1. Was ist ein Abschluss? 2. D...

Detaillierte Erklärung der Befehle zum Anzeigen von Linux-Dateien

So zeigen Sie Linux-Dateien an Befehl zum Anzeige...

Detaillierte Erklärung der Verwendung und Erfahrung mit tinyMCE

Detaillierte Erklärung der tinyMCE-Verwendung Ini...

Detaillierte Erklärung zur Verwendung der vue3 Teleport-Sofortbewegungsfunktion

Die Verwendung der vue3 Teleport-Sofortbewegungsf...

So stellen Sie das Crownblog-Projekt mit Docker in der Alibaba Cloud bereit

Front-End-Projektpaketierung Suchen Sie .env.prod...

MySQL-Leistungsoptimierungs-Index-Pushdown

Index Condition Pushdown (ICP) wird in MySQL 5.6 ...