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

So invertieren Sie die Implementierung einer Bézierkurve in CSS

Schauen wir uns zunächst einen CSS-Karussell-Anim...

Lösung für den ONLY_FULL_GROUP_BY-Fehler in Mysql5.7 und höher

Während des jüngsten Entwicklungsprozesses handel...

Absteigender Index in MySQL 8.0

Vorwort Ich glaube, jeder weiß, dass Indizes geor...

So führen Sie das Springboot-Projekt im Docker aus

1. Klicken Sie unten in IDEA auf Terminal und geb...

Vue3.0 handgeschriebener Karusselleffekt

In diesem Artikel wird der spezifische Code des h...

Detaillierte Erklärung des Unterschieds zwischen Flex und Inline-Flex in CSS

inline-flex ist dasselbe wie inline-block. Es ist...

Detailliertes Tutorial zur Installation von MySQL auf CentOS 6.9

1. Bestätigen Sie, ob MySQL installiert wurde. Si...

Javascript-Baummenü (11 Elemente)

1. dhtmlxBaum dHTMLxTree ist ein Tree-Menu-Steuer...

Sind Sie immer noch Select *?

Es gibt viele Gründe, warum eine Anwendung langsa...