Docker+SpringBootの仮想環境作ってみた。
Spring Bootで作成した、webアプリケーションを仮想環境で実装するサンプルプロジェクトを作成しました。
使用技術
Java : 17
Spring Boot : 3.0.5
thymeleaf
spring-boot-starter-web
lombok
spring-boot-devtools
Docker
ファイル構成
.
├── README.md
├── app
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── settings.gradle
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── AppApplication.java
│ │ │ └── controller
│ │ │ └── helloController.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── templates
│ │ └── index.html
│ └── test
│ └── java
│ └── com
│ └── example
│ └── demo
│ └── AppApplicationTests.java
├── docker-compose.yml
└── dockerfile
- dockerfile
FROM openjdk:18
RUN microdnf install findutils
- dockercompose.yml
docker-compose.yml
version: '3'
services:
app:
build: .
container_name: java
tty: true
ports:
- 8080:8080
working_dir: /doc
volumes:
- ./app:/doc
その他、追加したファウル
- helloController.java
helloController.java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
@Controller
public class helloController {
public String getHello() {
return "/index";
}
}
- index.html
index.html
<!DOCTYPE html>
<html xmlns:th="http://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>sample</title>
</head>
<body>
<h1>HelloWorld</h1>
</body>
</html>
起動方法
- クローン
git@github.com:yukishi24/SpringBootTestContainer.git
- docker-composeを起動
cd SpringBootTestContainer
docker-compose up -d
- 起動確認
docker ps -a
以下が表示されていれば起動してる
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42f2e3e25b00 springboottestcontainer-app "jshell" 15 seconds ago Up 14 seconds 0.0.0.0:8080->8080/tcp java
- 起動したコンテナに入る
docker exec -it java /bin/sh
- Springの起動
sh-4.4# sh gradlew bootRun
localhostに接続
ブラウザに「Hello World」が表示されていれば成功