docker-compose 下で Java + Spring Boot 環境を作ってみる

2 min read読了の目安(約2400字 1

諸事情でJavaアプリケーションを作ることになったので
Spring Boot アプリケーションで HelloWorld してみたいと思います。

TL;DR

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

Gradleプロジェクト作成

Ecripseでプロジェクト作成をする方法や
VSCode の拡張機能で用意する方法などもありますが、
今回は 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

今回のリポジトリはこちら

https://github.com/JUNKI555/java_spring_boot_practice01