Construire Java x Spring x VSCode x Gradle sur Docker (1)

Ce serait plus facile si l'environnement de développement pour Java et Spring était également configuré avec Docker. Dans cet article, j'ai également inclus VSCode dans Docker. Étant donné que tout l'environnement de développement peut être géré avec Docker, il est recommandé car il est facile à gérer.

Personnage

Qu'est-ce que Docker

C'est un environnement pour exécuter une application dans un conteneur sous Linux. Les applications et bibliothèques peuvent être regroupées dans le même conteneur et réutilisées. https://ja.wikipedia.org/wiki/Docker

VSCode https://ja.wikipedia.org/wiki/Visual_Studio_Code Éditeur fabriqué par Microsoft. Si vous installez Dart Plugin, vous pouvez utiliser la fonction d'interpolation, etc. et c'est pratique.

Code-Server C'est un gars formidable qui peut exécuter VSCode en tant que service Web. https://github.com/cdr/code-server

Essayez de créer un environnement

https://github.com/kyorohiro/my-code-server/tree/master/java_spring

(1) Ecrire un fichier docker

FROM openjdk:11

#
# GRADLE
RUN mkdir /works
WORKDIR /works

RUN apt-get update
RUN apt-get install -y curl wget gnupg less lsof net-tools git apt-utils -y
RUN apt-get install -y build-essential libssl-dev curl git-core
RUN apt-get install -y emacs

RUN wget https://downloads.gradle.org/distributions/gradle-5.4.1-bin.zip
RUN unzip gradle-5.4.1-bin.zip
ENV PATH="/works/gradle-5.4.1/bin:${PATH}"

#
#Peut ne pas être nécessaire
# https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-Pour dépendance
# nodejs for vscode plugin
RUN curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh -o install_nvm.sh
RUN sh install_nvm.sh
ENV NVM_DIR="/root/.nvm"

RUN chmod o+x /root/.nvm/nvm.sh
RUN /bin/bash -c "source /root/.nvm/nvm.sh && nvm install v12.0.0"
ENV PATH="/root/.nvm/versions/node/v12.0.0/bin/:${PATH}"

#
# code-server
RUN wget https://github.com/cdr/code-server/releases/download/1.939-vsc1.33.1/code-server1.939-vsc1.33.1-linux-x64.tar.gz
RUN tar xzf code-server1.939-vsc1.33.1-linux-x64.tar.gz -C ./ --strip-components 1

(1) Exécuter l'image du menu fixe

docker build -t java_spring_vscode .
docker run -p 8443:8443 -p 8080:8080 -it java_spring_vscode bash

(2) Démarrer vscode en utilisant le serveur de code

mkdir /works/w
/works/code-server /works/w --allow-http --no-auth

(3) et ouvrez'http: //127.0.0.1: 8443 / 'dans un navigateur

root_page.jpg

Installer le plug-in Java

(1) https://marketplace.visualstudio.com/items?itemName=redhat.java

(2) Peut être inutile

.vscode/settings.json

{
    "java.home": "/usr/lib/jvm/java-11-openjdk-amd64",
    "java.maven.downloadSources": true,
    "java.import.gradle.enabled": true,
    "java.errors.incompleteClasspath.severity": "warning",
    "java.configuration.updateBuildConfiguration": "automatic"
}

Écrivons HelloWorld.

(1) Terminal -> New Terminal on VSCODE

(2) Sur le terminal

$ gradle init --type java-application
$ gradle build

(3) Ajouter eclipse à build.gradle pour le plugin java redhat

plugins {
    id 'java'
    id 'application'
    id 'eclipse'
}

repositories {
    jcenter()
}

dependencies {
    implementation 'com.google.guava:guava:27.0.1-jre'
   testImplementation 'junit:junit:4.12'
}

mainClassName = 'hello.App'

(4) Essayez d'exécuter Hello World !!.

$ gradle eclipse
$ gradle build
$ gradle run

Lançons Spring Boot.

(1) Modifier build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 11
targetCompatibility = 11

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

(2) Téléchargement d'un package

$ gradle build
$ gradle eclipse

(3) src/main/java/hello/App.java

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App {

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

(4) src/main/java/hello/Greeting.java

package hello;

public class Greeting {
    private final long id;
    private final String content;

    public Greeting(long id, String content) {
        this.id = id;
        this.content = content;
    }

    public long getId(){
        return this.id;
    }

    public String getContent() {
        return this.content;
    }
}

(5) src/main/java/hello/GreetingController.java

package hello;

import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    private static final String template = "Hello, %s!";
    private final AtomicLong counter = new AtomicLong();

    @RequestMapping("/greeting")
    public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return new Greeting(counter.incrementAndGet(),
                            String.format(template, name));
    }
}

(6) Essayez de commencer

 $ SERVER_PORT=8080 SERVER_HOST=0.0.0.0 gradle tasks bootRun

(7) and, open 'http://127.0.0.1:8080/greeting' at your browser

spring_page.jpg

c'est tout.

Code-Server était très pratique. https://github.com/cdr/code-server

la fin.

Le code pour cette fois est résumé ci-dessous. https://github.com/kyorohiro/my-code-server/tree/master/java_spring

PS

[a] Si vous souhaitez reprendre

$ docker ps -a
check id and
$ docker start < id > 
$ docker exec -it < id > bash

[b] Si vous souhaitez modifier les paramètres

$ docker commit < id > java_spring_vscode_xxx
$ docker run -p 8443:8443 -p 8080:8080 -it java_spring_vscode_xxx bash

[c] Monter

$ docker run -p 8443:8443 -p 8080:8080 -v /Users/kyorohiro/w/xxx:/app/w -it java_spring_vscode bash

Recommended Posts

Construire Java x Spring x VSCode x Gradle sur Docker (1)
Construire Clang x VSCode sur Docker (1)
Créer une image Spring Boot + Docker avec Gradle
Construction de premier niveau (Java)
Créer un environnement de développement pour Docker, Java, vs code
Spring + Gradle + Java Quick Start
Oracle Java 8 sur Docker Ubuntu
Utilisation de Docker depuis Java Gradle
Construire un projet Java avec Gradle
Créer un environnement de développement Unity sur docker
Lorsque la construction de Gradle s'arrête lors de l'importation sur Mac
printemps × docker
Application Java CICS-Run - (3) Gestion de build avec Gradle
Créer un environnement de développement Java sur Mac
Créer un environnement de développement Java 8 avec AWS Cloud 9
Construction de l'environnement de développement Java Spring Boot + Docker
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Spring Java
Créer un environnement de lecture de code Redmine sur Docker
Construire OpenCV avec Java Wrapper sur Ubuntu 18.04
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Créer un environnement avec Docker sur AWS
Créer un environnement de développement Ultra96v2 sur Docker 1
Créer un serveur d'applications Web (Java) sur VPS
Essayez de créer un environnement Java 8 sur Amazon Linux2
Mettez Java 11 et Spring Tool Suite sur Mac
[Gradle] Opérations de construction souvent effectuées dans les projets Java
Présentation de Rspec avec Ruby on Rails x Docker
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez et testez des applications Java + Gradle avec Wercker
[Java] Créer un environnement de développement Java sur Ubuntu et vérifier l'exécution
En utilisant Gradle avec VSCode, compilez Java → exécutez
Créez des projets Spring Boot par environnement avec Gradle
Conseils Java - Créez un projet Spring Boot avec Gradle
Créer un conteneur pour Docker x Laravel phpMyAdmin
[Java] Hello World avec Java 14 x Spring Boot 2.3 x JUnit 5 ~
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode
Créer un environnement d'exécution Java sur Sakura VPS
Procédure de construction de LINE Bot x Java (Spring Boot)
Liberty sur Docker
build java vagrant
Sélénium x Java
/ n \ n docker java
Construire la pile ELK sur Mac OS X et générer le journal JAVA vers Elasticsearch (log4j2)
[Java] Spring DI ③
Redmine sur Docker
Cachez les fichiers dépendants de Gradle pour accélérer la construction du docker
Créer un environnement de développement Java avec VS Code sur Mac
Créer un environnement VS Code + WSL + Java + Gradle à partir de zéro
Comment créer un environnement Docker avec Gradle pour IntelliJ
Le débogueur Java VSCode pour la construction Java a échoué Causes et contre-mesures
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
Essayez de créer un environnement de développement Java à l'aide de Docker