Schritte zum Bereitstellen eines Docker-Projekts in IDEA

Schritte zum Bereitstellen eines Docker-Projekts in IDEA
Mittlerweile werden die meisten Projekte auf Docker bereitgestellt, der Bereitstellungsprozess ist jedoch immer noch etwas mühsam. In diesem Artikel wird daher erläutert, wie Sie mit IDEA per Mausklick bereitstellen können.

Docker-Konfiguration

Ändern der Konfigurationsdatei

Öffnen Sie die Docker-Konfigurationsdatei:
vim /usr/lib/systemd/system/docker.service
Kommentieren Sie die folgende Zeile aus:
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Schreiben Sie eine neue Zeile:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
Laden Sie die Konfigurationsdatei neu und starten Sie:
systemctl daemon-reload
systemctl starte Docker

Wie in der folgenden Abbildung dargestellt:

Docker mit IDEA konfigurieren

Docker-Plugin installieren

Docker-Informationen konfigurieren

Um Docker in den Einstellungen zu konfigurieren, müssen Sie die API-URL konfigurieren. Wenn die Verbindung erfolgreich war, wird unten Folgendes angezeigt:

Projektkonstruktion

Erstellen Sie ein neues Springboot-Projekt

Um ein Projekt über IDEA zu erstellen, müssen Sie nichts auswählen. Klicken Sie einfach weiter:

Ändern der POM-Datei

Die wichtigsten zwei Punkte sind:

1. Fügen Sie das Eigenschaften-Tag hinzu

<docker.image.prefix>Demo</docker.image.prefix>

2. Füge ein neues Plugin-Tag hinzu

<Plugin>
 <groupId>com.spotify</groupId>
 <artifactId>Docker-Maven-Plugin</artifactId>
 <version>1.2.1</version>
 <Konfiguration>
   <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
   <dockerVerzeichnis></dockerVerzeichnis>
   <Ressourcen>
     <Ressource>
       <Zielpfad>/</Zielpfad>
       <Verzeichnis>${project.build.directory}</Verzeichnis>
       <include>${project.build.finalName}.jar</include>
     </Ressource>
   </Ressourcen>
 </Konfiguration>
</plugin>

Hier ist die vollständige POM-Datei:

<?xml version="1.0" encoding="UTF-8"?>
<Projekt xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <übergeordnetes Element>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.2.1.RELEASE</version>
   <relativePath/> <!-- übergeordnetes Element im Repository suchen -->
 </übergeordnet>
 <groupId>com.beispiel</groupId>
 <artifactId>Demo</artifactId>
 <version>0.0.1</version>
 <name>Demo</name>
 <description>Demoprojekt für Spring Boot</description>

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

 <Abhängigkeiten>

   <Abhängigkeit>
     <groupId>org.springframework.boot</groupId>
     <artifactId>Spring-Boot-Starter</artifactId>
   </Abhängigkeit>

   <Abhängigkeit>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
   </Abhängigkeit>

   <Abhängigkeit>
     <groupId>org.springframework.boot</groupId>
     <artifactId>Spring-Boot-Starter-Test</artifactId>
     <scope>Test</scope>
     <Ausschlüsse>
       <Ausschluss>
         <groupId>org.junit.vintage</groupId>
         <artifactId>junit-vintage-engine</artifactId>
       </Ausschluss>
     </Ausschlüsse>
   </Abhängigkeit>
 </Abhängigkeiten>

 <Bauen>
   <Plugins>
     <Plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>Spring-Boot-Maven-Plugin</artifactId>
     </plugin>
     <Plugin>
       <groupId>com.spotify</groupId>
       <artifactId>Docker-Maven-Plugin</artifactId>
       <version>1.2.1</version>
       <Konfiguration>
         <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
         <dockerVerzeichnis></dockerVerzeichnis>
         <Ressourcen>
           <Ressource>
             <Zielpfad>/</Zielpfad>
             <Verzeichnis>${project.build.directory}</Verzeichnis>
             <include>${project.build.finalName}.jar</include>
           </Ressource>
         </Ressourcen>
       </Konfiguration>
     </plugin>
   </plugins>
 </bauen>

</Projekt>

Erstellen Sie ein neues Dockerfile

Sie müssen eine neue Dockerfile-Datei im Stammverzeichnis erstellen

#Geben Sie das Basis-Image an und passen Sie es an AB java:8

#Informationen zum Betreuer BETREIBER zhouzhaodong <[email protected]>

#Das Verzeichnis /tmp wird hier zur Laufzeit automatisch als anonymes Volume gemountet, und alle in /tmp geschriebenen Informationen werden nicht in der Containerspeicherebene VOLUME /tmp aufgezeichnet.

#Kopieren Sie target/demo-1.0.0.jar im Kontextverzeichnis in den Container COPY target/demo-0.0.1.jar demo-1.0.0.jar

#Im Bash-Modus ausführen, um demo-1.0.0.jar zugänglich zu machen. #RUNErstellen Sie eine neue Ebene und führen Sie diese Befehle darauf aus. Nachdem die Ausführung abgeschlossen ist, übernehmen Sie die Änderungen dieser Ebene, um ein neues Image zu erstellen.
Führen Sie den Befehl bash -c "touch /demo-1.0.0.jar" aus.

#Deklarieren Sie den vom Laufzeitcontainer bereitgestellten Service-Port. Dies ist nur eine Deklaration. Aufgrund dieser Deklaration wird die Anwendung den Service dieses Ports zur Laufzeit nicht öffnen. EXPOSE 8080

#Geben Sie das Container-Startprogramm und die Parameter <ENTRYPOINT> "<CMD>" an.
EINSTIEGSPUNKT ["java","-jar","demo-1.0.0.jar"]

Erstellen einer neuen Controllerdatei

Vergessen Sie nicht, die Web-Abhängigkeit in der POM-Datei hinzuzufügen.

@RestController
öffentliche Klasse TestController {

  @RequestMapping("/")
  öffentlicher String-Test () {
    gib "Test-Docker" zurück;
  }

}

Maven-Verpackung

Verpackung installieren:


JAR-Paket generieren:

Neue Konfiguration

Erstellen Sie eine neue Dockerfile-Ausführungskonfiguration:


Fügen Sie die folgenden Informationen hinzu, suchen Sie die von Ihnen geschriebene Dockerfile-Datei und konfigurieren Sie die Portzuordnung:

Generieren Sie ein Docker-Image und führen Sie es aus

Führen Sie einfach die neu erstellte Dockerfile-Ausführungskonfiguration aus:


Wenn der Vorgang erfolgreich war, werden im Protokollfenster die Informationen zum Projektvorgang angezeigt:


Beim Aufruf der entsprechenden Adresse werden die von uns eingegebenen Informationen angezeigt:

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Bereitstellen von SpringBoot-Projekten mit Docker in Idea
  • Detaillierte Schritte zur automatischen Bereitstellung von Linux+Docker+SpringBoot+IDEA mit nur einem Klick
  • Java-Remote-Ein-Klick-Bereitstellung von Springboot auf Docker über Idea
  • Stellen Sie das Springboot-Projekt basierend auf der Idee im Docker bereit
  • Detaillierter Prozess der Bereitstellung von Docker für WSL2 in IDEA

<<:  Zwei Möglichkeiten zum Löschen von Tabellendaten in MySQL und ihre Unterschiede

>>:  Implementierung der VUE-Anzeige unendlicher Ebenenbaum-Datenstrukturen

Artikel empfehlen

Tutorial zur Nginx-Standortkonfiguration von Grund auf

Grundlagen Die Reihenfolge der Standortübereinsti...

Implementierung von Single-Div-Zeichentechniken in CSS

Sie können häufig Artikel über das Zeichnen mit C...

Lösung für die Inkonsistenz zwischen Crontab-Ausführungszeit und Systemzeit

Vorwort Unter LINUX werden periodische Aufgaben n...

Unterschiede zwischen MySQL CHAR und VARCHAR beim Speichern und Lesen

Einführung Kennen Sie wirklich den Unterschied zw...

HTML-Sonderzeichen-Konvertierungstabelle

Charakter Dezimal Zeichennummer Entitätsname --- ...

Liste der allgemeinen MySql-Abfragebefehlsoperationen

In MySQL häufig verwendete Abfragebefehle: mysql&...

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Lassen Sie uns ausführlich über Vues Mixin und Vererbung sprechen

Inhaltsverzeichnis Vorwort Mischen Mixin-Hinweis ...

Einfache Methode zur Installation von MySQL unter Linux

Bei der Onlinesuche nach Methoden zur Installatio...

Grundlegende Implementierung der AOP-Programmierung in JavaScript

Einführung in AOP Die Hauptfunktion von AOP (Aspe...

Einführung in die Installation des Vim-Plugins unter Linux

Inhaltsverzeichnis Installieren Sie den Vim-Plugi...