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

Beispiel-Tutorial für MySQL-Datenbanktransaktionen

Inhaltsverzeichnis 1. Was ist eine Transaktion? 2...

Implementierung der MySQL8.0.11-Datenverzeichnismigration

Das Standardspeicherverzeichnis von MySQL ist /va...

Detaillierte Analyse mehrerer Situationen, in denen MySQL-Indizes fehlschlagen

1. Führende Fuzzy-Abfragen können keinen Index ve...

Zwei Möglichkeiten zum Öffnen und Schließen des MySQL-Dienstes

Methode 1: Verwenden Sie den cmd-Befehl Öffnen Si...

VUE implementiert Saugknopf an der Unterseite

In diesem Artikelbeispiel wird der spezifische Co...

So binden Sie einen Docker-Container an eine externe IP und einen externen Port

Docker ermöglicht die Bereitstellung von Netzwerk...

Drei Möglichkeiten zum Löschen einer Tabelle in MySQL (Zusammenfassung)

Drop-Tabelle Drop löscht Tabelleninformationen di...

React-Prinzipien erklärt

Inhaltsverzeichnis 1. setState() Beschreibung 1.1...

Webinterview: Benutzerdefinierte Vue-Komponenten und Aufrufmethoden

Import: Aufgrund der Projektanforderungen werden ...

Zusammenfassung der CSS-Methoden zum Löschen von Floats

Float wird häufig im Layout von Webseiten verwend...

Beispielcode zum Erstellen von Desktop-Anwendungen mit Vue + Electron

1.vue-Verpackung Hier verwenden wir den Befehl „v...

Tutorial zur Installation von Pycharm und Ipython unter Ubuntu 16.04/18.04

Unter Ubuntu 18.04 1. sudo apt install python ins...