Docker trifft auf Intellij IDEA, Java-Entwicklung steigert die Produktivität um das Zehnfache

Docker trifft auf Intellij IDEA, Java-Entwicklung steigert die Produktivität um das Zehnfache

Idea ist ein leistungsstarkes Tool für die Java-Entwicklung, SpringBoot ist das beliebteste Microservice-Framework im Java-Ökosystem und Docker ist die angesagteste Container-Technologie unserer Zeit. Welche Art chemischer Reaktion tritt also auf, wenn sie miteinander kombiniert werden?

1. Vorbereitung vor der Entwicklung

1. Informationen zur Docker-Installation finden Sie unter https://docs.docker.com/install/.

2. 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 hinzu, wie in der folgenden Abbildung gezeigt

3. Docker neu starten

systemctl daemon-reload
 systemctl Neustart Docker

4. Offene Ports

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

5.Idea installiert das Docker -Plugin und startet neu

6. Verbindung zum Remote-Docker herstellen

(1) Konfiguration bearbeiten

(2) Geben Sie die Remote-Docker-Adresse ein

(3) Wenn die Verbindung erfolgreich ist, werden der Remote-Docker-Container und das Image aufgelistet.

2. Neues Projekt

Erstellen Sie ein Springboot-Projekt

Projektstrukturdiagramm

(1) Konfigurieren Sie die 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>com.fengqi</groupId>
    <artifactId>dockerDemo</artifactId>
    <version>1.0.0</version>
    <relativePath>../pom.xml</relativePath> <!-- übergeordnetes Element im Repository suchen -->
  </übergeordnet>
  <groupId>com.fengqi</groupId>
  <artifactId>Netz</artifactId>
  <version>1.0.0</version>
  <name>Webseite</name>
  <description>Demoprojekt für Spring Boot</description>
  
 <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-Test</artifactId>
      <scope>Test</scope>
    </Abhängigkeit>
    <Abhängigkeit>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</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" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
              </Aufgaben>
            </Konfiguration>
            <Ziele>
              <goal>laufen</goal>
            </Ziele>
          </Ausführung>
        </Ausführungen>
      </plugin>
    </plugins>
  </bauen>

(2) Erstellen Sie ein Docker-Verzeichnis im Verzeichnis src/main und erstellen Sie eine Dockerfile-Datei

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

(3) Erstellen Sie eine application.properties-Datei im Ressourcenverzeichnis

logging.config=Klassenpfad:logback.xml
logging.path=/home/entwickler/app/logs/
server.port=8990

(4) Erstellen Sie eine DockerApplication-Datei

@SpringBootAnwendung
öffentliche Klasse DockerApplication {
 öffentliche statische void main(String[] args) {
 SpringApplication.run(DockerApplication.class, args);
 }
}

(5) Erstellen Sie eine DockerController-Datei

@RestController
öffentliche Klasse DockerController {
 statisches Protokoll log = LogFactory.getLog(DockerController.class);
 @RequestMapping("/")
 öffentlicher Stringindex() {
 log.info("Hallo Docker!");
 returniere "Hallo Docker!";
 }
}

(6) Konfiguration hinzufü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 Protokolle im Containerverzeichnis /home/developer/app/logs/. Nachdem das Hostverzeichnis in das interne Verzeichnis des Containers eingebunden wurde, werden die Protokolle im Hostverzeichnis außerhalb des Containers gespeichert.

(7) Maven-Verpackung

(8) Laufen

Hier können wir sehen, dass der Image-Name docker-demo:1.1 und der Docker-Container docker-server ist.

(9) Erfolgreicher Betrieb

(10) Browserzugriff

(11) Protokollansicht

Seitdem wurde das Springboot-Projekt über Idea erfolgreich in Docker bereitgestellt! Es ist kaum vorstellbar, dass die Bereitstellung eines Java-Webprojekts so einfach und bequem ist!

Abschließend möchte ich noch die entsprechenden Lern-Tutorials mit euch teilen:

https://www.bilibili.com/video/BV14t411z77T

IDEA-Lernprogramm

https://www.bilibili.com/video/BV1PZ4y1j7QK

Dies ist das Ende dieses Artikels über Docker meets Intellij IDEA, der die Produktivität der Java-Entwicklung um das Zehnfache steigert. Weitere verwandte Inhalte zu Docker meets IDEA finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Bereitstellen von SpringBoot-Projekten mit Docker in Idea
  • Detailliertes Tutorial zum Veröffentlichen von Springboot-Projekten über das Docker-Plugin in IDEA
  • Eine kurze Analyse der SpringBoot-Verpackung und des Hochladens in Docker sowie der Implementierung der Bereitstellung mehrerer Instanzen (IDEA-Version)
  • Stellen Sie das Springboot-Projekt basierend auf der Idee im Docker bereit
  • Java-Remote-Ein-Klick-Bereitstellung von Springboot auf Docker über Idea

<<:  Beispiel für die MySQL-Methode zum Löschen von Daten und Datentabellen

>>:  js, um den Effekt des Ziehens des Schiebereglers zu erzielen

Artikel empfehlen

Implementierung des Pushens von Docker-Images zum Docker Hub

Nachdem das Image erfolgreich erstellt wurde, kan...

Slot-Anordnung und Nutzungsanalyse in Vue

Die Betriebsumgebung dieses Tutorials: Windows 7-...

Vue implementiert die Bildfrequenzwiedergabe des Karussells

In diesem Artikelbeispiel wird der spezifische Co...

Installieren Sie Ubuntu 18 ohne USB-Laufwerk unter Windows 10 mit EasyUEFI

1. BIOS überprüfen Überprüfen Sie zunächst, in we...

So fügen Sie Batchdaten unter Node.js in eine MySQL-Datenbank ein

Im Projekt (nodejs) müssen mehrere Daten gleichze...

Tiefgreifendes Verständnis der Verwendung von CSS clear:both

clear:both wird zum清除浮動Das ist der Eindruck, den ...

Einrichten von VMware vSphere in VMware Workstation (Grafisches Tutorial)

VMware vSphere ist die branchenführende und zuver...

So verwenden Sie Nginx als Proxy-Cache

Der Zweck der Cache-Verwendung besteht darin, den...

Beispielcode zur Implementierung der MySQL-Master-Slave-Replikation in Docker

Inhaltsverzeichnis 1. Übersicht 1. Grundsatz 2. U...

Definieren Sie Ihre eigene Ajax-Funktion mit JavaScript

Da die von nativen JS initiierten Netzwerkanforde...

Lösung für den Konfigurationsfehler des Nginx-SSL-Zertifikats

1. Einleitung Wenn ein Webprojekt auf unserem Lin...

Zwei Möglichkeiten zur Installation von Python3 auf Linux-Servern

Erste Methode Alibaba Cloud- und Baidu Cloud-Serv...

Beschreibung der Grenzen und Bereiche zwischen MySQL

MySQL zwischen Grenzbereich Der Bereich zwischen ...