Der gesamte Prozess der IDEA-Integration von Docker zur Bereitstellung eines Springboot-Projekts

Der gesamte Prozess der IDEA-Integration von Docker zur Bereitstellung eines Springboot-Projekts

1. IDEA lädt das Docker-Plugin herunter

Ich werde hier nicht ins Detail gehen, installiere es einfach wie andere Plugins

2. Cloud-Server-Docker

Hinweis: Mein Server verwendet centOS 7

2.1 Docker-Installation

https://www.jb51.net/article/213611.htm

2.2 Docker-Dienst stoppen

Um Fehler beim Neustart des Docker-Dienstes zu vermeiden, stoppen Sie am besten zuerst den Docker-Dienst und ändern Sie dann die Konfigurationsdatei.

Bevor Sie Docker stoppen, müssen Sie zuerst den laufenden Container stoppen, da es sonst beim späteren Starten des Containers zu Fehlern kommen kann.

Stoppen Sie den laufenden Container:

Docker-Stopp [Container-ID]

Stoppen Sie dann den Docker-Dienst

systemctl stoppt Docker

2.3 Änderung der Docker-Konfigurationsdatei

Um IDEA über HTTP mit dem Docker auf dem Server zu verbinden, müssen Sie die Docker-Konfigurationsdatei wie folgt ändern:

vim /usr/lib/systemd/system/docker.service

Ändern Sie die Zeile „Execstart“ und ersetzen Sie sie durch den folgenden Inhalt, um Port 2375 für HTTP-Remoteverbindungen zu öffnen:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

2.4 Aktualisieren Sie die Konfigurationsdatei

Der Befehl lautet wie folgt:

systemctl daemon-reload

Um zu testen, ob die Konfigurationsdatei wirksam ist, geben Sie den folgenden Befehl auf dem Server ein. Wenn der JSON-String-Inhalt angezeigt wird, ist die Datei wirksam.

curl http://127.0.0.1:2375/version

2.5 Starten Sie den Docker-Dienst

Der Befehl lautet wie folgt:

systemctl Neustart Docker

2.6 Port 2375 zur Firewall hinzufügen

Der Befehl lautet wie folgt:

Firewall-Befehl --zone=public --add-port=2375/tcp --permanent

Starten Sie die Firewall neu:

Firewall-Befehl --reload

2.7 Alibaba Cloud fügt Sicherheitsgruppenregeln hinzu

Beachten Sie hierbei, dass Sie auf der Instanzseite die Sicherheitsgruppe eintragen, anschließend die Regeln konfigurieren und den Port 2375 öffnen müssen.

2.8 Testen einer Remote-HTTP-Verbindung

Geben Sie http://127.0.0.1:2375/version in den lokalen Browser ein. Wenn eine JSON-Zeichenfolge angezeigt wird, kann eine HTTP-Verbindung hergestellt werden.

An diesem Punkt können Sie IDEA verwenden, um dokcer zu integrieren.

3. Maven-Projektpaketierung

3.1 Verpackungs-Plugins

Fügen Sie der POM-Datei das Springboot-Verpackungs-Plugin hinzu

<Plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>Spring-Boot-Maven-Plugin</artifactId>
</plugin>

3.2 Verpacken von Ressourcendateien und deren Speicherort nach dem Verpacken

Zusätzlich zum Verpacken von Java-Quelldateien müssen Sie auch Ressourcendateien wie XML-/YML-/Properties-/HTML-Dateien verpacken. Achten Sie aber auf den Speicherort, an dem die HTML-Datei gepackt wird. Sie sollte im Verzeichnis META-INF/resources abgelegt werden. Andernfalls ist nach dem Starten des JAR-Pakets die HTML-Seite nicht mehr erreichbar.

<Ressourcen>
    <Ressource>
        <Verzeichnis>src/main/java</Verzeichnis>
        <!--Hier habe ich die Mapper-Datei in das Java-Verzeichnis gelegt, daher muss ich den Kompilierungsort angeben-->
        <beinhaltet>
            <include>**/*.xml</include>
        </beinhaltet>
        <filtering>wahr</filtering>
    </Ressource>
    <Ressource>
        <!--Geben Sie den Kompilierungsort der YML-Konfigurationsdatei an-->
        <Verzeichnis>src/main/ressourcen</Verzeichnis>
    </Ressource>
    <Ressource>
        <!--Deklarieren Sie den Speicherort der HTML-Dateikompilierung und legen Sie die kompilierte Datei am angegebenen Speicherort ab-->
        <Verzeichnis>src/main/webapp</Verzeichnis>
        <targetPath>META-INF/Ressourcen</targetPath>
    </Ressource>
</Ressourcen>

3.3 Docker-Plugin

Dabei sind zwei Dinge zu beachten. Erstens muss vor dem Docker-Image-Namen ein Präfix stehen, welches sich aus [Präfix]:[Image-Name]:[Versionsnummer] zusammensetzt. Zweitens dürfen bei der Angabe des Image-Namens keine Großbuchstaben vorkommen.

In den Projektinformationen werden sowohl Name als auch Version verwendet

<groupId>org.team</groupId>
<artifactId>cooles Treffen</artifactId>
<version>1.0-SNAPSHOT</version>
<name>cooles Treffen</name>
<description>Docker startet MeetingMS</description>

<Eigenschaften>
    <java.version>1.8</java.version>
    <docker.image.prefix>Team</docker.image.prefix>
</Eigenschaften>


<Plugins>
    <Plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>Spring-Boot-Maven-Plugin</artifactId>
    </plugin>
    <!-- tag::plugin[] -->
    <Plugin>
        <groupId>com.spotify</groupId>
        <artifactId>Docker-Maven-Plugin</artifactId>
        <version>1.0.0</version>
        <Konfiguration>
            <dockerHost>http://127.0.0.1:2375</dockerHost>
            <!--Bildname darf keine Großbuchstaben enthalten-->
            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
            <!--Speicherort der Docker-Datei-->
            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
            <Ressourcen>
                <Ressource>
                    <Zielpfad>/</Zielpfad>
                    <!--Zielort-->
                    <Verzeichnis>${project.build.directory}</Verzeichnis>
                    <!--Legen Sie das JAR-Paket und die Docker-Datei in dasselbe Verzeichnis-->
                    <include>${project.build.finalName}.jar</include>
                </Ressource>
            </Ressourcen>
        </Konfiguration>
    </plugin>
    <!-- end::plugin[] -->

    <Plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <Konfiguration>
            <skipTests>wahr</skipTests>
        </Konfiguration>
    </plugin>
</plugins>

Die Dockerfile-Datei lautet wie folgt. Beachten Sie, dass D beim Erstellen der Datei groß geschrieben werden sollte. /meetingMS.jar ist ein Alias ​​für einfaches Schreiben.

VON java:8
VOLUMEN /tmp
Füge coolmeeting-1.0-SNAPSHOT.jar /meetingMS.jar hinzu
EINSTIEGSPUNKT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/meetingMS.jar"]

3.4 Bereinigen, Installieren und Docker-Build

Verwenden Sie zunächst Maven zum Bereinigen und Installieren und dann den Maven-Plugin-Docker zum Erstellen

Bildbeschreibung hier einfügen

Das gepackte Dateiverzeichnis:

Bildbeschreibung hier einfügen

Starten des Containers

Bildbeschreibung hier einfügen

Startparameter festlegen

Bildbeschreibung hier einfügen

4. Aufgetretene Fallstricke

  • Problem mit dem Bildnamen (darf keine Großbuchstaben enthalten)
  • Die Springboot-Konfigurationsdatei application.yml kann nicht gepackt werden
  • Nach dem Verpacken ist der Zugriff auf die HTML-Seite nicht mehr möglich

5. Referenzen

Als JAR verpacktes Springboot kann nicht auf JSP oder HTML zugreifen, 404-Fehler

Informationen zu nicht gescannten YML- oder Eigenschaftendateien

Geben Sie den Startport an, wenn Sie das Jar-Paket ausführen

Stapelüber

IDEA integriert Docker zur schnellen Bereitstellung von SpringBoot-Anwendungen

IDEA integriert Docker für eine schnelle Bereitstellung

Dies ist das Ende dieses Artikels über die Integration von Docker in IDEA zur Bereitstellung von Springboot-Projekten. Weitere relevante Inhalte zur Integration von Docker in IDEA zur Bereitstellung von Springboot-Projekten 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 konfigurieren Sie Docker in IDEA2021.2, um das Springboot-Projekt abzubilden und mit einem Klick freizugeben
  • Detaillierte Schritte zum Bereitstellen von SpringBoot-Projekten mit Docker in Idea
  • Detailliertes Tutorial zum Veröffentlichen von Springboot-Projekten über das Docker-Plugin in IDEA
  • Stellen Sie das Springboot-Projekt basierend auf der Idee im Docker bereit
  • Detaillierte Erläuterung des Bereitstellungsprozesses eines SpringBoot-Projekts über das Docker-Plugin in IDEA

<<:  CSS-Tipps zur Steuerung der Wiedergabe und Pause von Animationen (sehr praktisch)

>>:  Drei gängige Möglichkeiten zum Einbetten von CSS in HTML-Dokumente

Artikel empfehlen

Installations-Tutorial für mysql8.0rpm auf centos7

Laden Sie zunächst das Diagramm herunter 1. Deins...

Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

1. golang:neuestes Basis-Image mkdir gotest Berüh...

Was macht der legendäre VUE-Syntax-Sugar?

Inhaltsverzeichnis 1. Was ist syntaktischer Zucke...

Beispielanalyse der Verwendung von Dockerfile-Textdateien

Dockerfile ist eine Textdatei, die zum Erstellen ...

Verwenden von Openlayer in Vue, um einen Ladeanimationseffekt zu realisieren

Hinweis: Sie können keine bereichsbezogenen Anima...

Zusammenfassung häufiger Probleme und Anwendungskenntnisse in MySQL

Vorwort Bei der täglichen Entwicklung oder Wartun...

Zusammenfassung der Ereignisse, die Browser registrieren können

HTML-Ereignisliste Allgemeine Ereignisse: onClick ...

Tutorial zur Installation von VMWare15.5 unter Linux

Um VMWare unter Linux zu installieren, müssen Sie...

So legen Sie Hintergrundfarbe und Transparenz in Vue fest

Einstellungen für Hintergrundfarbe und Transparen...

So dekomprimieren Sie mehrere Dateien mit dem Befehl „unzip“ in Linux

Lösung für das Problem, dass in Linux kein Entpac...

CSS imitiert Fernbedienungstasten

Hinweis: Diese Demo wurde in der Miniprogrammumge...