🐥
docker-compose 下で Java + Spring Boot 環境を作ってみる
諸事情でJavaアプリケーションを作ることになったので
Spring Boot アプリケーションで HelloWorld してみたいと思います。
TL;DR
- 今回はほとんど下記記事と同じです
- Docker × Spring Boot環境構築 | Qiita
docker-compose.yml を用意する
cd your_project
mkdir server
touch docker-compose.yml
docker-compose.yml
version: '3.6'
services:
app:
image: openjdk:15
ports:
- 8080:8080
tty: true
volumes:
- ./server:/srv:cached
working_dir: /srv
- OpenJDK | DockerHub
- JDK Project Releases | OpenJDK
- 指定できるバージョン情報はここ
- http://openjdk.java.net/projects/jdk/
Gradleプロジェクト作成
Ecripseでプロジェクト作成をする方法や
VSCode の拡張機能で用意する方法などもありますが、
今回は Spring Initializr というサイトで作ってしまいます。
- Spring Initializr
依存ライブラリ(Dependencies) のあたりは後からでも追加できますので
気楽にいきましょう。
入力が終わったら GENERATE してダウンロードします。
ダウンロードしたら展開したものを
your_project/server 配下に配置します。
配置したら、
server/src/main/java/com/example/api/ApiApplication.java を
以下の右側のような感じに編集します。
Docker コンテナを起動してGradleビルド
docker-compose up -d
docker-compose exec app bash
bash-4.4# pwd
/srv
bash-4.4# sh gradlew build
...
BUILD SUCCESSFUL in 6m 37s
6 actionable tasks: 6 executed
Gradleビルドが終わったら build/ ディレクトリ以下が作成されている事を確認しましょう。
bash-4.4# ls
HELP.md build build.gradle gradle gradlew gradlew.bat settings.gradle src
bash-4.4# ls build/libs/
api-0.0.1-SNAPSHOT.jar
できてますね!
java コマンドでアプリケーション起動
では java コマンドで Spring アプリケーションを起動します
bash-4.4# java -jar build/libs/api-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.1)
起動したら http://localhost:8080/
へアクセスして確認です。
いけましたね! お疲れ様でした。
アプリケーションを停止するのは Ctrl+c
です。
確認が終わったらコンテナも停止しておきましょう。
docker-compose down
今回のリポジトリはこちら
Discussion
(毎日ちがう分野の記事ですごい…)