プログラミングBlog

Vscode + Docker + Gradle + Spring boot 構築

javaの環境をRemote - Containers(Vscode拡張機能)で構築

②Dockerコンテナ内でSpring Bootを構築

前提条件

docker version

構成

vscode + docker + spring の最終的な構成となります。

.
└── demo
    ├── HELP.md
    ├── bin
    │   ├── main
    │   │   ├── application.properties
    │   │   ├── com
    │   │   │   └── example
    │   │   │       └── demo
    │   │   │           ├── DemoApplication.class
    │   │   │           ├── ServletInitializer.class
    │   │   │           └── controller
    │   │   │               └── HelloController.class
    │   │   └── templates
    │   │       └── index.html
    │   └── test
    │       └── com
    │           └── example
    │               └── demo
    │                   └── DemoApplicationTests.class
    ├── build.gradle
    ├── gradle
    │   └── wrapper
    │       ├── gradle-wrapper.jar
    │       └── gradle-wrapper.properties
    ├── gradlew
    ├── gradlew.bat
    ├── settings.gradle
    └── src
        ├── main
        │   ├── java
        │   │   └── com
        │   │       └── example
        │   │           └── demo
        │   │               ├── DemoApplication.java
        │   │               ├── ServletInitializer.java
        │   │               └── controller
        │   │                   └── HelloController.java
        │   └── resources
        │       ├── application.properties
        │       ├── static
        │       └── templates
        │           └── index.html
        └── test
            └── java
                └── com
                    └── example
                        └── demo
                            └── DemoApplicationTests.java

必要なファイル

今回はRemote - Containers(Vscode拡張機能)で環境構築していくため、特に必要なし

手順① Remote-Container

  • Vscodeのコマンドパレット起動

ctrl + shift + p もしくは command + shift + p

  • Remote - containerの機能を使ってjava環境作成

Remote-Containers:Add Development Container Configuration Files選択
f:id:Tokuty:20210911084242p:plain

Java選択
f:id:Tokuty:20210911084308p:plain

11選択
f:id:Tokuty:20210911084425p:plain

16選択
f:id:Tokuty:20210911084436p:plain

Gradleを選択
f:id:Tokuty:20210911084446p:plain

以下のフォルダとファイルが作成される
f:id:Tokuty:20210911092103p:plain

devcontainer.jsonにextensionを追加
"vscjava.vscode-spring-initializr"
spring boot 作成時に使う

 "extensions": [
        "vscjava.vscode-java-pack",
        "vscjava.vscode-spring-initializr"
    ],

右下に表示されたReopen Containerを選択
もしくは右下の緑色の箇所をクリックしReopen Containerを選択
f:id:Tokuty:20210911084457p:plain

左下に下記の表示が出たらコンテナ内にアクセス成功
f:id:Tokuty:20210911084505p:plain

手順② Spring Boot 作成

  • Vscodeのコマンドパレット起動
    ctrl + shift + p もしくは command + shift + p

create java project選択
f:id:Tokuty:20210911085639p:plain

spring boot 選択
f:id:Tokuty:20210911092357p:plain

Gradle Project選択
f:id:Tokuty:20210911092619p:plain

2.5.4選択
f:id:Tokuty:20210911092651p:plain

Java選択
f:id:Tokuty:20210911092711p:plain

ルートパッケージ名 src/main/java直下の名前を選択
f:id:Tokuty:20210911093101p:plain

プロジェクト名
f:id:Tokuty:20210911093158p:plain

今回はWarを選択   
f:id:Tokuty:20210911093220p:plain

11を選択し、開発環境のJava versionと合わせる
f:id:Tokuty:20210911093240p:plain

spring webThymeleaf選択
f:id:Tokuty:20210911093312p:plain

workspaceを作成したい場所を選択
f:id:Tokuty:20210911093402p:plain

openを選択すると作成したプロジェクトを開く
f:id:Tokuty:20210911093430p:plain

以下のフォルダとファイルが作成される
f:id:Tokuty:20210911093529p:plain

  • controllerとviewを追加

以下のパスに追加する
src/main/java/com/example/demo/controller/HelloController.java

HelloController.java

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    @RequestMapping("/hello")
    public String index(){
        return "hello";
    }
}

index.html

以下のパスに追加する
src/main/resources/templates/index.html

<html xmlns:th="http://www.thymeleaf.org">

<h1>helloworld</h1>

</html>
  • VscodeにDebug構成を追加する

構成の追加
f:id:Tokuty:20210912115819p:plain

Java
f:id:Tokuty:20210912115840p:plain

launch.json追加
f:id:Tokuty:20210912115853p:plain

  • Spring boot実行

デバッグなしで実行
f:id:Tokuty:20210912115957p:plain

起動
f:id:Tokuty:20210912120021p:plain

http://localhost:8080 にアクセス
f:id:Tokuty:20210912120040p:plain

GiitHub

github.com

次回

次回は
①ビルドツール Gradleを使用して、warファイルを作成
TomcatでwarファイルをDeproyする

Deproy場所は以下を使用
Tomcat + nginx でReverseProxsyServer

参考サイト

blog.kondoumh.com