IDEA-Konfigurationsprozess von Docker

IDEA-Konfigurationsprozess von Docker

IDEA ist das am häufigsten verwendete Entwicklungstool für Java und Docker der beliebteste Bereitstellungscontainer.

1. Konfigurieren Sie den Docker-Remoteverbindungsport

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

Suchen Sie nach ExecStart und fügen Sie am Ende -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock hinzu

Bildbeschreibung hier einfügen

Starten Sie Docker neu

 systemctl daemon-reload
 systemctl starte Docker

Öffnen Sie Port 2375

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

2. Installieren Sie das Docker-Plugin in IDEA

1. Datei->Einstellungen->Plugins suchen nach Docker-Integration

Bildbeschreibung hier einfügen

Starten Sie IDEA nach erfolgreicher Installation neu

3. Erstellen Sie ein Springboot-Projekt und konfigurieren Sie die Verbindung zum Remote-Docker pom.xml

<?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.4.2</version>
    <relativePath/> <!-- übergeordnetes Element im Repository suchen -->
  </übergeordnet>
  <groupId>com.docker</groupId>
  <artifactId>Idee-Docker-Demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Idee-Docker-Demo</name>
  <description>Demoprojekt für Spring Boot</description>
  <Eigenschaften>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <docker.image.prefix>com.docker</docker.image.prefix>
    <java.version>1.8</java.version>
  </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>
    </Abhängigkeit>
    <!-- Lombok -->
    <Abhängigkeit>
      <groupId>org.projektlombok</groupId>
      <artifactId>Lombok</artifactId>
    </Abhängigkeit>
    <Abhängigkeit>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </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.0.0</version>
        <Konfiguration>
          <dockerDirectory>src/main/docker</dockerDirectory>
          <Ressourcen>
            <Ressource>
              <Zielpfad>/</Zielpfad>
              <Verzeichnis>${project.build.directory}</Verzeichnis>
              <include>${project.build.finalName}.jar</include>
            </Ressource>
          </Ressourcen>
        </Konfiguration>
      </plugin>
      <Plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <Hinrichtungen>
          <Ausführung>
            <phase>Paket</phase>
            <Konfiguration>
              <Aufgaben>
                <copy todir="src/main/docker"
                   Datei="target/${project.artifactId}-${project.version}.${project.packaging}"></kopieren>
              </Aufgaben>
            </Konfiguration>
            <Ziele>
              <goal>laufen</goal>
            </Ziele>
          </Ausführung>
        </Ausführungen>
      </plugin>

    </plugins>
  </bauen>

</Projekt>

Anwendungseigenschaften

server.port=8887

logging.config=Klassenpfad:logback.xml
logging.path=/home/docker_demo/app/logs/

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<Konfiguration debug="false" scan="true" scanPeriod="1 Sekunde">

  <contextName>logback</contextName>
  <Eigenschaftsname="log.Pfad" Wert="/home/docker_demo/app/logs/docker_demo.log"/>

  <appender name="konsole" klasse="ch.qos.logback.core.ConsoleAppender">
    <Encoder>
      <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
    </Encoder>
  </appender>

  <appender name="Datei" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <Datei>${log.Pfad}</Datei>
    <rollingPolicy-Klasse="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${log.path}.%d{jjjj-MM-tt}.zip</fileNamePattern>
    </rollingPolicy>
    <Encoder>
      <Muster>%Datum %Ebene [%Thread] %Logger{36} [%Datei : %Zeile] %Msg%n
      </Muster>
    </Encoder>
  </appender>

  <root-Ebene="info">
    <appender-ref ref="Konsole"/>
    <appender-ref ref="Datei"/>
  </Wurzel>

</Konfiguration>

Konfigurieren Sie die Docker-Remoteadresse

Bildbeschreibung hier einfügen

Erstellen Sie eine Dockerfile-Datei unter dem Projekt

Bildbeschreibung hier einfügen

Inhalt der Dockerfile:

VON openjdk:8-jdk-alpine
ADD *.jar app.jar
EINSTIEGSPUNKT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Docker-Konfiguration hinzufügen

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Befehl Erklärung
Bild-Tag: Geben Sie den Bildnamen und das Tag an. Der Bildname ist docker-demo und das Tag ist 1.1.
Ports binden: Binden Sie Host-Ports an interne Ports des Containers. Das Format ist [Host-Port]:[interner Container-Port]
Bind-Mounts: Mounten Sie das Host-Verzeichnis im internen Verzeichnis des Containers. Das Format ist [Hostverzeichnis]:[internes Containerverzeichnis]. Dieses Springboot-Projekt druckt das Protokoll im Container
/home/docker_demo/app/logs/-Verzeichnis. Nachdem das Host-Verzeichnis in das Verzeichnis innerhalb des Containers eingebunden wurde, bleiben die Protokolle im Host-Verzeichnis außerhalb des Containers erhalten.

3. Projektverpackung und Bereitstellung im Docker

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

Projektstart erfolgreich

Bildbeschreibung hier einfügen

Sie können direkt auf die Schnittstelle zugreifen und die Protokolldateien anzeigen

Bildbeschreibung hier einfügen

Zusammenfassung: Es ist einfach und bequem, Springboot-Projekte über Idea in Docker bereitzustellen!

Dies ist das Ende dieses Artikels über den Prozess der Konfiguration von Docker in IDEA. Weitere relevante Inhalte zur Konfiguration von Docker in IDEA 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 neueste Idea2021-Aktivierungs-Tutorial mit den neuesten Details
  • Lösen Sie das Problem, dass der IDEA-Zielordner immer größer wird
  • Über Intellij Idea-Fehler: Fehler: Java unterstützt Release-Version 5 nicht
  • Beheben Sie dauerhaft das Problem des Intellij-Ideen-Berichtsfehlers: Fehler: Java unterstützt Release-Version 5 nicht
  • IntelliJ IDEA-Tutorial zum Erstellen eines allgemeinen Java-Projekts und zum Erstellen und Ausführen von Java-Dateien
  • Beheben Sie den IDEA Gradle-Build-Fehler „Ursache: Zip-END-Header nicht gefunden“
  • Lösen Sie das Problem, dass IDEA zu viel Platz auf dem Laufwerk C einnimmt

<<:  202 kostenlose, hochwertige XHTML-Vorlagen (1)

>>:  So installieren Sie MySQL für Anfänger (erwiesenermaßen effektiv)

Artikel empfehlen

JS-Implementierung eines Karussellbeispiels

In diesem Artikel wird der spezifische JS-Code zu...

Diagramm zur Installation von VMware 14 unter Windows 10

Software-Download Link zum Herunterladen der Soft...

Details zur Verwendung des Vue-Slots

Inhaltsverzeichnis 1. Warum Slots verwenden? 1.1 ...

Detaillierte Erläuterung der MySQL-Filterreplikationsideen

Inhaltsverzeichnis MySQL gefilterte Replikation I...

webpack -v Fehlerlösung

Hintergrund Ich möchte die Webpack-Version überpr...

Vue+Element - benutzerdefinierte Abfragekomponente

In diesem Artikel wird hauptsächlich das Vue-Proj...

So implementieren Sie die Formularvalidierung in Vue

1. Installation und Nutzung Installieren Sie es z...

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Mit beiden Methoden kann ein JavaScript-Code nach...