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

JavaScript implementiert Konstellationsabfragefunktion mit detailliertem Code

Inhaltsverzeichnis 1. Titel 2. Code 3. Ergebnisse...

Detaillierte Erklärung der Fallstricke beim Mischen von npm und cnpm

Inhaltsverzeichnis Ursache Grund Einführung in NP...

So importieren Sie Excel-Dateien in eine MySQL-Datenbank

In diesem Artikel erfahren Sie, wie Sie Excel-Dat...

Verwendung von TypeScript-Generics

Inhaltsverzeichnis 1. Einfach zu bedienen 2. Verw...

Lassen Sie uns ausführlich über die gemeinsame MySQL-Abfrage sprechen

Inhaltsverzeichnis Union-Abfrage 1. Fragen Sie di...

Mehrere Möglichkeiten zur manuellen Implementierung von HMR in Webpack

Inhaltsverzeichnis 1. Einleitung 2. GitHub 3. Gru...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...

Zwei Implementierungen des Front-End-Routings von Vue-Router

Inhaltsverzeichnis Modusparameter HashHistorie Ha...

So ändern Sie die SSH-Portnummer in der Centos8-Umgebung

Inhaltsverzeichnis Vorwort Start Vorwort Die Stan...