idea verwendet Docker-Plugin, um automatisierte Bereitstellung mit einem Klick zu erreichen

idea verwendet Docker-Plugin, um automatisierte Bereitstellung mit einem Klick zu erreichen

Umfeld:

  • ​ JDK 1.8 und höher.
  • Maven 3.2+
  • Idee
  • Docker

1. Docker ermöglicht den Fernzugriff auf Verbindungen

Zuerst müssen wir den Remote-Verbindungszugriff auf Docker aktivieren. Achten Sie darauf, dass Docker nicht auf dem Server liegt, sondern auch aus der Ferne erreichbar ist.

Docker für Linux:

Ändern Sie die Datei docker.service und fügen Sie den Abhörport -H tcp://0.0.0.0:2375 hinzu

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

Suchen Sie nach ExecStart und fügen Sie am Ende -H tcp://0.0.0.0:2375 hinzu, wie in der folgenden Abbildung gezeigt

Starten Sie Docker neu

 systemctl daemon-reload
 systemctl starte Docker

Wenn wir eine Firewall haben, denken Sie daran, eine Firewall-Richtlinie hinzuzufügen oder die Firewall auszuschalten.

Docker für Windows

Suchen Sie in der unteren linken Ecke des Computers nach dem Docker-Symbol, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Einstellungen“. Aktivieren Sie „Expose daemon on tcp://localhost:2375 without TLS“ im Menü „Allgemein“. Kein Neustart erforderlich.

Installieren und konfigurieren Sie das Idea-Docker-Plugin

Suchen Sie unter Datei --> Einstellungen --> Plugins im Eingabefeld nach Docker, wählen Sie es aus und installieren Sie es. Starten Sie Docker neu, nachdem die Installation abgeschlossen ist.

Bildbeschreibung hier einfügen

Docker konfigurieren

Finden Sie Docker unter Datei–> Einstellungen–> Erstellen, Ausführen, Bereitstellen

Erstellen Sie eine neue Docker-Instanz und geben Sie dann die IP-Portnummer, unter der sich Docker befindet, in die Engine-API-URL ein. Wenn unten „Verbindung erfolgreich“ angezeigt wird, ist die Verbindung zu Docker erfolgreich. Wenn dies fehlschlägt, liegt es möglicherweise daran, dass wir im vorherigen Schritt nicht die Remote-Verbindung mit Docker herstellen konnten.

Bildbeschreibung hier einfügen

Nachdem wir die Einstellungen abgeschlossen haben, kehren Sie zur Hauptoberfläche von Idea zurück. Unter der Seite wird ein Docker-Fenster angezeigt. Klicken Sie auf den grünen Pfeil, um eine Verbindung zu Docker herzustellen. Nach dem Verbinden sind die angezeigten Container und Images die Container und Images, die wir bereits in Docker haben.

Bildbeschreibung hier einfügen

Erstellen Sie ein Projekt und konfigurieren Sie

1. Erstellen Sie ein Projekt

Ich werde es anhand eines einfachen Eureka-Projekts demonstrieren.

Datei–> Neu -->Projekt --> Spring Initializr

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

2. Konfigurationsprojekt

Ändern Sie die Datei pom.xml und führen Sie die Konfiguration des Plug-Ins docker-maven-plugin ein. Ändern Sie die Konfiguration im Tag <plugins>

 <!--Verwenden Sie das Plugin „docker-maven-plugin“-->
    <Plugin>
        <groupId>com.spotify</groupId>
        <artifactId>Docker-Maven-Plugin</artifactId>
        <version>1.0.0</version>

        <!--Binden Sie das Plugin zur Ausführung an eine bestimmte Phase-->
        <Hinrichtungen>
            <Ausführung>
                <id>Bild erstellen</id>
                <!--Binden Sie das Plug-In an die Paketphase. Das heißt,
                Benutzer müssen nur das MVN-Paket ausführen, wodurch automatisch MVN Docker:Build--> ausgeführt wird.
                <phase>Paket</phase>
                <Ziele>
                    <goal>bauen</goal>
                </Ziele>
            </Ausführung>
        </Ausführungen>

        <Konfiguration>
            <!--Geben Sie den Namen des generierten Bildes an, hier ist unser Projektname-->
            <imageName>${project.artifactId}</imageName>
            <!--Geben Sie hier das Tag an, um die Version des Bildes anzugeben. Unsere Standardversion ist die neueste-->
            <BildTags>
                <imageTag>neueste</imageTag>
            </imageTags>
            <!-- Geben Sie den Pfad der Dockerfile-Datei in unserem Projekt an-->
            <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>

            <!--Geben Sie die Remote-Docker-Adresse an-->
            <dockerHost>http://127.0.0.1:2375</dockerHost>

            <!-- Hier ist die Konfiguration zum Kopieren des JAR-Pakets in das angegebene Verzeichnis des Docker-Containers-->
            <Ressourcen>
                <Ressource>
                    <Zielpfad>/</Zielpfad>
                    <!--Der Pfad, in dem sich das JAR-Paket befindet, wird hier so konfiguriert, dass er dem Zielverzeichnis im Projekt entspricht-->
                    <Verzeichnis>${project.build.directory}</Verzeichnis>
                    <!-- Das einzubindende JAR-Paket, das dem im Dockerfile hinzugefügten Dateinamen entspricht-->
                    <include>${project.build.finalName}.jar</include>
                </Ressource>
            </Ressourcen>
        </Konfiguration>
    </plugin>

Konfigurieren Sie die Grundkonfiguration des Projekts. (Das ist nicht der Punkt, nur eine kurze Anmerkung)

①Ändern Sie application.properties und fügen Sie projektbezogene Informationen hinzu.

#Die Portnummer und IP-Adresse, unter der das Projekt gestartet wird server.port=9090
eureka.instance.hostname=127.0.0.1

# Ob es beim Registrierungscenter registriert werden soll, wenn es keine Clusterumgebung ist, false
eureka.client.register-with-eureka=false
# Ob der Dienst abgerufen werden soll, „false“ im Fall einer einzelnen Maschine
eureka.client.fetch-registry=false

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

② Suchen Sie die Projektstartklasse und fügen Sie die Annotation @EnableEurekaServer hinzu

@EnableEurekaServer
@SpringBootAnwendung
öffentliche Klasse EurekaServerApplication {

    öffentliche statische void main(String[] args) {
        SpringApplication.run(EurekaserverApplication.class, args);
    }

}

Fügen Sie die Dockerfile-Datei hinzu.

Wir fügen eine Datei mit dem Namen Dockerfile im Verzeichnis EeurekaServer\src\main\resources hinzu.Bildbeschreibung hier einfügen

Wenn wir das Java:8-Image nicht im Docker haben, verwenden Sie bitte Docker Pull Java:8, um das Image zuerst herunterzuladen.

VON java:8
VOLUMEN /tmp
ADD *.jar app.jar
EXPOSE 9090
EINSTIEGSPUNKT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

Wir haben ein VOLUME hinzugefügt, das auf den Inhalt von „/tmp“ verweist, da Spring Boot-Anwendungen dort standardmäßig Arbeitsverzeichnisse für Tomcat erstellen. Der Effekt besteht darin, dass auf dem Host unter „/var/lib/docker“ eine temporäre Datei erstellt und diese mit dem Container unter „/tmp“ verknüpft wird. Dieser Schritt ist für die einfache Anwendung, die wir hier schreiben, optional, kann aber für andere Spring Boot-Anwendungen erforderlich sein, wenn Sie tatsächlich in das Dateisystem schreiben müssen.

Um die Startzeit von Tomcat zu reduzieren, haben wir eine Systemeigenschaft hinzugefügt, die auf „/dev/urandom“ als Entropiequelle verweist. Wenn Sie eine „Standard“-Version von Tomcat (oder einem anderen Webserver) verwenden, benötigen Sie keine neuere Version von Spring Boot.

Maven-Verpackung, Bilder generieren

Verwenden Sie Maven zum Verpacken. Wir haben es in pom.xml konfiguriert. Wenn wir ein Maven-Paket verwenden, wird die Dockerfile-Datei automatisch zum Erstellen verwendet.

Bildbeschreibung hier einfügen

Wir können in der Konsole sehen, dass eine Image-Datei mit demselben Namen wie unser Projekt für mich erstellt wurde.

Bildbeschreibung hier einfügen

Wir können im Docker-Fenster sehen, dass in unserer Bildbibliothek noch ein weiteres eurekaserver:latest-Bild vorhanden ist.

Bildbeschreibung hier einfügen

Erstellen Sie einen Container und stellen Sie das Projekt im Docker bereit.

Suchen Sie im Docker-Fenster die gerade erstellte Image-Datei, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Container erstellen“. Wir ändern die zum Erstellen des Containers erforderliche Konfiguration.

Bildbeschreibung hier einfügen

Ändern Sie im Popupfenster „Docker-Konfiguration erstellen“ den Containernamen und die Bind-Ports.

Ich füge hier 127.0.0.1:8080:9090 hinzu. Verwenden Sie den lokalen Port 8080, um auf den Port 9090 des Containers zuzugreifen.

Bildbeschreibung hier einfügen

Nachdem wir auf Ausführen geklickt haben, wird der Container automatisch erstellt und gestartet.

Wir können sehen, dass im Docker-Plugin ein zusätzlicher EurekaServer-Container vorhanden ist und dieser erfolgreich mit der Portnummer 9090 gestartet wurde.

Bildbeschreibung hier einfügen

Auf Elemente in einem Container zugreifen

Wir haben das Projekt zuvor so eingerichtet, dass für den Zugriff auf Container 9090 Port 8080 verwendet wird.

Wir verwenden 127.0.0.1:8080, um auf das Projekt zuzugreifen, und die folgende Seite wird angezeigt, die beweist, dass das Projekt erfolgreich gestartet wurde.

Bildbeschreibung hier einfügen

Hier haben wir im Wesentlichen die gesamte Konfiguration abgeschlossen.

Ändern Sie das Projekt und stellen Sie es mit einem Klick bereit

Zukünftig können wir das Projekt wie in der folgenden Abbildung gezeigt starten. Mit einem Klick wird unser Projekt im Docker-Container ausgeführt.

Bildbeschreibung hier einfügen

Wenn wir das Projekt ändern und das Projekt im Docker-Plugin starten, stellen wir fest, dass es beim Start immer noch das Projekt vor der Änderung ist, da wir nur den Container starten und das geänderte Projekt nicht neu verpacken und Docker-Images generieren. Wenn wir das Paket ausführen und das Projekt direkt beim Start starten möchten, können wir die folgenden Schritte befolgen.

Wir ändern die Konfiguration der Docker-Images, die wir zuvor erstellt haben.

Bildbeschreibung hier einfügen

2. Suchen Sie im Konfigurationsstartelement „Vor dem Start: Aktivieren Sie das Toolfenster“, wo wir „Run Maven Gold“ hinzufügen.

Bildbeschreibung hier einfügen

Wir fügen hier der Befehlszeile ein Befehlspaket hinzu.

Bildbeschreibung hier einfügen

Speichern Sie, nachdem die Konfiguration abgeschlossen ist. Wenn wir in Zukunft das Projekt starten, werden wir den Maven-Paketbefehl ausführen, um automatisch ein Paket für uns zu erstellen und eine Docker-Image-Datei für den Projektstart zu generieren.

Wenn wir das Projekt in Zukunft ändern, können wir es wie in der folgenden Abbildung gezeigt starten. Es wird automatisch ein Docker-Image gepackt und erstellt und das Projekt gestartet.

Bildbeschreibung hier einfügen

Wenn wir nur das Projekt starten müssen, gehen Sie zum Docker-Plugin-Fenster und starten Sie den Container des entsprechenden Projekts.

siehe

https://www.cnblogs.com/hsz-csy/p/9488469.html

https://spring.io/guides/gs/spring-boot-docker/

Dies ist das Ende dieses Artikels über die Idee, Docker-Plugins zu verwenden, um eine automatische Bereitstellung mit einem Klick zu erreichen. Weitere verwandte Inhalte zur Idee, Docker mit einem Klick für eine automatische Bereitstellung zu verwenden, finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • IDEA verwendet das Docker-Plugin (Tutorial für Anfänger)
  • So verwenden Sie das Docker-Plugin, um Projekte remote auf Cloud-Servern in IDEA bereitzustellen
  • Lösen Sie das Problem verstümmelter Protokolle, nachdem IDEA das Docker-Plugin integriert hat
  • Detailliertes Tutorial zum Veröffentlichen von Springboot-Projekten über das Docker-Plugin in IDEA
  • Detaillierter Prozess zur Installation des Docker-Plugins in IntelliJ IDEA (Version 2018)

<<:  So passen Sie mit CSS einen schöneren Link-Prompt-Effekt an

>>:  HTML ungeordnete Liste Aufzählungspunkte mit Bildern CSS schreiben

Artikel empfehlen

Verwenden Sie zum Senden des Formulars ein Bild statt einer Schaltfläche.

Code kopieren Der Code lautet wie folgt: <form...

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von J...

Lösung für den Fehler beim Aufruf von Yum im Docker-Container

Beim Ausführen von yum im Dockerfile oder im Cont...

Analyse der zum Ausführen von Docker erforderlichen Berechtigungen

Zum Ausführen von Docker sind Root-Rechte erforde...

Acht Implementierungslösungen für domänenübergreifendes JS-Frontend

Inhaltsverzeichnis 1. JSONP domänenübergreifend 2...

Wird der Index in der MySQL-Abfragebedingung verwendet?

Wenn Sie ein Arbeitgeber fragt, ob in einer MySQL...

Einführung in die JWT-Verifizierung mit Nginx und Lua

Inhaltsverzeichnis Vorwort Lua-Skript nignx.conf-...

Implementierung der MySQL-Datendesensibilisierung (Telefonnummer, ID-Karte)

1. Erklärung zur Datendesensibilisierung Bei den ...

Der Unterschied zwischen HTML-Block-Level-Tags und Inline-Tags

1. Blockebenenelement: bezieht sich auf die Fähigk...

Eine kurze Diskussion über Shallow Copy und Deep Copy in JavaScript

Inhaltsverzeichnis 1. Direkte Zuordnung 2. Oberfl...

display:grid in CSS3, eine Einführung in das Rasterlayout

1. Rasterlayout (Raster): Es unterteilt die Webse...