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

Detaillierte Erläuterung der Cache-Konfiguration von Nginx Proxy_Cache

Vorwort: Aufgrund meiner Arbeit beschäftige ich m...

So verwenden Sie die asynchrone Anforderungs-API von Axios in Vue

Inhaltsverzeichnis Einrichten einer einfachen HTT...

Details zur Verwendung von „order by“ in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

Einführung in HTML DOM_PowerNode Java Academy

Was ist DOM? Mit JavaScript können Sie das gesamt...

Kleines Programm zur Implementierung eines einfachen Taschenrechners

In diesem Artikelbeispiel wird der spezifische Co...

Implementierung des Nginx Intranet Standalone Reverse Proxy

Inhaltsverzeichnis 1 Nginx Installation 2 Nginx k...

Eine kurze Diskussion über JS-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Prototyp 2. Prototypzeiger:...

Anweisungen zur Verwendung des HTML-Tags dl dt dd

Grundaufbau: Code kopieren Der Code lautet wie fol...

Detaillierte Erklärung der CSS3-Animation und der neuen Funktionen von HTML5

1. CSS3-Animation ☺CSS3-Animationen sind viel ein...

Beispielcode für mehrere Elementtabellen, um synchrones Scrollen zu erreichen

Element UI implementiert mehrere Tabellen, die gl...