[JAVA] Spring Boot beginnend mit Docker

Als ich über die Entwicklung einer Webanwendung mit Spring Boot of Java nachdachte, beschloss ich, eine Entwicklungsumgebung mit Docker zu erstellen und Docker zu studieren.

Betriebsumgebung

Implementierung von Spring Boot

Vorlage herunterladen

Erstellen Sie zunächst eine Spring Boot-Vorlage mit Spring Initializr.

  1. Wählen Sie "Gradle Project"
  2. Ändern Sie "Gruppe" in "Hallo" (Standard ist in Ordnung).
  3. Ändern Sie "Artefakt" in "Hallo" (Sie können die Standardeinstellung beibehalten).
  4. Fügen Sie Web zu "Abhängigkeiten" hinzu

スクリーンショット 2017-10-11 15.42.42.png

Laden Sie dann die Vorlage mit "Projekt generieren" herunter.

Ändern Sie build.gradle

Verwenden Sie Gradle, um Apps zu erstellen und abhängige Bibliotheken zu verwalten. Die oben heruntergeladene Vorlage enthält das Build-Skript "build.gradle". Ändern Sie es daher wie folgt.

buildscript {
    ext {
        springBootVersion = '1.5.7.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'hello-world'
    version = '0.1.0'
}

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Wenn der Editor IntelliJ IDEA ist, installiert er die erforderlichen Bibliotheken ohne Erlaubnis. Wenn Sie es nicht verwenden, führen Sie "gradlew clean build" aus.

Änderungen an HelloApplication.java

Ändern Sie src / main / java / hello / hello / HelloApplication.java in der heruntergeladenen Vorlage wie folgt.

package hello.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HelloApplication {

    @RequestMapping("/")
    public String home() {
        return "Hello World from Docker";
    }

    public static void main(String[] args) {
        SpringApplication.run(HelloApplication.class, args);
    }

}

Funktionsprüfung

Lassen Sie uns den Betrieb hier vorerst überprüfen. Die JAR-Datei sollte unter build / libs erstellt werden. Führen Sie den folgenden Befehl aus und prüfen Sie, ob die Ausgabe "Hello World from Docker" lautet.

$ ./gradlew build && java -jar build/libs/hello-world-0.1.0.jar
$ curl http://localhost:8080

Umgebungskonstruktion mit Docker

Erstellen einer Docker-Datei

Richten Sie zu diesem Zeitpunkt die Umgebung mit Docker ein. Wenn Docker nicht installiert ist, laden Sie es von hier herunter und installieren Sie es. Legen Sie "Dockerfile" in das Stammverzeichnis und beschreiben Sie den Inhalt wie folgt.

FROM openjdk:jdk-alpine
VOLUME /tmp
RUN mkdir /app
WORKDIR /app
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar build/libs/hello-world-0.1.0.jar" ]

Docker-Compose-Einstellungen

Ich denke, dass es in Zukunft Fälle geben wird, in denen ich den Container für Anwendungen und den Container für DB separat verwalten möchte, also werde ich Docker-Compose verwenden. Platzieren Sie docker-compose.yml im Stammverzeichnis und beschreiben Sie den Inhalt wie folgt.

version: '2'
services:
    app:
        build: .
        image: tiqwab/boot:0.0.1
        ports:
            - "8080:8080"
        volumes:
            - .:/app

Erstellen Sie ein Docker-Image und starten Sie den Container

Nachdem Sie fertig sind, erstellen Sie das Docker-Image mit dem folgenden Befehl und starten Sie den Container.

$ docker-compose up --build

Versuchen Sie in diesem Zustand, auf "http: // localhost: 8080 /" zuzugreifen. Sie sollten "Hello World from Docker" sehen.

Von nun an können Sie den Container mit dem folgenden Befehl starten.

#Anlaufen
$ docker-compose up -d

#Halt
$ docker-compose stop

Mit den oben genannten Funktionen können Sie mit Docker problemlos eine Entwicklungsumgebung für Spring Boot erstellen.

Referenz

Recommended Posts

Spring Boot beginnend mit Docker
Spring Boot beginnt mit dem Kopieren
Mit Spring Boot herunterladen
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Generieren Sie mit Spring Boot einen Barcode
Hallo Welt mit Spring Boot
Implementieren Sie GraphQL mit Spring Boot
Beginnen Sie mit Spring Boot
Führen Sie LIFF mit Spring Boot aus
SNS-Login mit Spring Boot
Datei-Upload mit Spring Boot
Hallo Welt mit Spring Boot
Setzen Sie Cookies mit Spring Boot
Verwenden Sie Spring JDBC mit Spring Boot
Aufbau der Docker x Spring Boot-Umgebung
Modul mit Spring Boot hinzufügen
Erste Schritte mit Spring Boot
Erstellen Sie mit Spring Boot einen Mikrodienst
Mail mit Spring Boot verschicken
Frühling × Docker
[Java] [Spring Boot] Geben Sie das Laufzeitprofil an - Spring Boot beginnend mit NetBeans
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellen Sie eine App mit Spring Boot 2
Datenbankverknüpfung mit doma2 (Spring Boot)
Spring Boot Programmierung mit VS Code
Bis "Hallo Welt" mit Spring Boot
Erhalten Sie Validierungsergebnisse mit Spring Boot
(Intellij) Hallo Welt mit Spring Boot
Erstellen Sie eine App mit Spring Boot
Google Cloud Platform mit Spring Boot 2.0.0
Ich habe GraphQL mit Spring Boot ausprobiert
[Java] LINE-Integration mit Spring Boot
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Ich habe Flyway mit Spring Boot ausprobiert
Spring Boot ab Null Teil 2
Spring Boot ab Null Teil 1
Die Nachrichtenkooperation begann mit Spring Boot
Verarbeitung beim Starten einer Anwendung mit Spring Boot
Hallo Welt mit Eclipse + Spring Boot + Maven
Senden Sie regelmäßige Benachrichtigungen mit LineNotify + Spring Boot
Führen Sie einen Transaktionsbestätigungstest mit Spring Boot durch
Erstellen Sie mit Docker eine Spring Boot-gradle-mysql-Entwicklungsumgebung
Versuchen Sie es mit Spring Boot mit VS-Code
Starten Sie die Entwicklung von Webanwendungen mit Spring Boot
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
Ich habe Lazy Initialization mit Spring Boot 2.2.0 ausprobiert
Spring Boot Form
Implementieren Sie CRUD mit Spring Boot + Thymeleaf + MySQL
Asynchrone Verarbeitung mit Spring Boot unter Verwendung von @Async
Stellen Sie sich die Spring Boot-App mit dem Jib-Maven-Plugin vor und starten Sie sie mit Docker
Implementieren Sie die Paging-Funktion mit Spring Boot + Thymeleaf
Spring Boot Denken Sie daran
gae + frühlingsstiefel
Javaw.exe Fehler beim Starten von Spring Boot (STS)
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Formularklassenvalidierungstest mit Spring Boot
Führen Sie die WEB-Anwendung mit Spring Boot + Thymeleaf aus