Quand j'ai pensé développer une application Web avec Spring Boot of Java, j'ai décidé de créer un environnement de développement à l'aide de Docker ainsi que d'étudier Docker.
Tout d'abord, créez un modèle Spring Boot avec Spring Initializr.
Projet Gradle
Groupe
par bonjour (la valeur par défaut est correcte)Dépendances
Ensuite, téléchargez le modèle avec Generate Project
.
Utilisez Gradle pour créer des applications et gérer les bibliothèques dépendantes.
Le modèle téléchargé ci-dessus contient le script de construction build.gradle
, changez-le comme suit.
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')
}
Si l'éditeur est IntelliJ IDEA, il installera les bibliothèques nécessaires sans autorisation.
Si vous ne l'utilisez pas, lancez gradlew clean build
.
Changez src / main / java / hello / hello / HelloApplication.java
dans le modèle téléchargé comme suit.
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);
}
}
Vérifions le fonctionnement ici pour le moment.
Le fichier jar doit être créé sous build / libs
.
Exécutez la commande suivante et vérifiez si la sortie est Hello World from Docker
.
$ ./gradlew build && java -jar build/libs/hello-world-0.1.0.jar
$ curl http://localhost:8080
À ce stade, configurez l'environnement avec Docker.
Si Docker n'est pas installé, téléchargez-le depuis ici et installez-le.
Placez Dockerfile
dans le répertoire racine et décrivez le contenu comme suit.
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" ]
À l'avenir, je pense qu'il y aura des cas où je veux gérer séparément le conteneur pour les applications et le conteneur pour DB, donc j'utiliserai docker-compose.
Placez docker-compose.yml
dans le répertoire racine et décrivez le contenu comme suit.
version: '2'
services:
app:
build: .
image: tiqwab/boot:0.0.1
ports:
- "8080:8080"
volumes:
- .:/app
Maintenant que vous êtes prêt, créez l'image docker avec la commande suivante et démarrez le conteneur.
$ docker-compose up --build
Dans cet état, essayez d'accéder à http: // localhost: 8080 /
.
Vous devriez voir Hello World from Docker
.
À partir de maintenant, vous pouvez démarrer le conteneur avec la commande suivante.
#Commencez
$ docker-compose up -d
#Arrêtez
$ docker-compose stop
Avec ce qui précède, vous pouvez facilement créer un environnement de développement pour Spring Boot à l'aide de Docker.
Recommended Posts