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

So verwalten Sie Benutzer und Gruppen beim Ausführen von Docker

Docker ist ein Verwaltungstool, das Prozesse als ...

Detaillierte Erklärung des Typschutzes in TypeScript

Inhaltsverzeichnis Überblick Typzusicherungen in ...

Java-Beispielcode zum Generieren von zufälligen Zeichen

Beispielcode: importiere java.util.Random; import...

JavaScript-Countdown zum Schließen von Anzeigen

Verwenden von Javascript zum Implementieren eines...

Eine kurze Zusammenfassung aller Kapselungsmethoden in Vue

Inhaltsverzeichnis 1. Kapselungs-API 2. Globale T...

Zusammenfassung der Tipps zur CSS-Verwendung

Vor Kurzem habe ich mit der Aktualisierung meines ...

Implementierung der Docker Compose-Mehrcontainerbereitstellung

Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....

So schreiben Sie den Stil einer CSS3-Tianzi-Rasterliste

In vielen Projekten ist es notwendig, die Funktio...

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...

Detaillierte Erläuterung der Wissenspunkte zum MySQL Strict Mode

I. Erläuterung des strikten Modus Gemäß den Einsc...