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.
Erstellen Sie zunächst eine Spring Boot-Vorlage mit Spring Initializr.
Laden Sie dann die Vorlage mit "Projekt generieren" herunter.
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.
Ä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);
}
}
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
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" ]
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
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.
Recommended Posts