いまや、開発環境構築の主流となっているDocker。
そのDockerを利用して、JavaのフレームワークSpring bootの開発環境構築をやっていきます。
これからSpring bootの学習を始めようと思っている方の参考になれば嬉しいです。
※Macbookの以下のスペックで作業した記事になります。
OS:macOS Sequoia15.5
プロセッサ : Intel Core i5
前提
本記事では、以下のソフトウェアを利用します。
・Docker Desktop for Mac
・Eclipse
・MySQL WorkBench
※インストール手順は、本記事では記載していません。
また、ディレクトリ構成は以下のとおりです。
Documents/
├── workspace/
│ └── demo/ ※Spring bootアプリ
└── docker/
└── docker-compose.yml
Bash作業の流れ
- Step1docker-compose.ymlファイル作成
- Step2Spring bootアプリケーション作成
- Step3コンテナ作成・起動
- Step4WorkBench接続・確認
- Step5Spring boot接続確認
docker-compose.yml作成
以下が作成したdocker-compose.ymlファイルになります。
services:
db:
image: mysql:8.0
container_name: spiring-boot-db-demo
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=spring-boot-demo
- MYSQL_USER=test
- MYSQL_PASSWORD=test
volumes:
- db-data:/var/lib/mysql
app:
image: eclipse-temurin:17-jdk
container_name: spring-boot-app-demo
volumes:
- /Documents/workspace/demo:/app
working_dir: /app
command: ./mvnw spring-boot:run
ports:
- "8082:8080"
depends_on:
- db
volumes:
db-data:
YAML今回、2つのコンテナを作成しています。
db:MySQL8.0
app:Spring bootアプリ (Java:17)
※Spring bootにはTomcatが組み込まれているため、Webサーバー用のコンテナを別途作成する必要はない
開発用で利用するため、ローカルのソースコードとコンテナのソースコードを同期するため、バインドマウントの設定をしています。
この設定をすることで、ローカルのソースコードを修正した場合、コンテナ側にも自動で反映してくれます。
# バインドマウント
volumes:
- /Documents/workspace/demo:/app
YAMLSpring bootアプリケーション作成
Spring bootのアプリケーションはEclipseで作成していきます。
Eclipseをインストールしていない方は、こちらからでも作成できます。
以下、Eclipseを利用したSpring bootアプリケーションの作成手順になります。
- Step1Eclipseを開く
- Step2ワークスペースを選択&起動する
「参照」ボタンをクリックして、Spring bootアプリケーションを配置するディレクトリを選択して、起動する
- Step3ウィザード選択ダイアログを表示する
パッケージ・エクスプローラー上で右クリック > 「新規」をホバー > 「その他」をクリック
※ワークスペース上にプロジェクトがない場合、「プロジェクトの作成」と表示されているのでクリック - Step4Spring スターター・プロジェクトダイアログを開く
Spring boot > 「Spring スターター・プロジェクト」をダブルクリック
- Step5作成するSpring bootプロジェクトの設定を行う
以下の通り入力し、「次へ」をクリック
名前:docker-compose.ymlファイルでバインドマウント設定に記載している末尾の
ディレクトリ名を記載
※/Documents/workspace/demoの場合、demoとなる
ロケーション:docker-compose.ymlファイルでバインドマウント設定に記載しているパスと
一致していればOKです
タイプ:Maven
※本記事では、コンテナでMavenを利用して、Spring bootアプリを起動させるため
Java バージョン:17 ※作成するコンテナのJavaバージョンと合わせる依存関係は、添付のとおりチェックボックスにチェックを入れ、「完了」ボタンをクリック
- Step6DB接続設定
src/main/resources配下のapplication.propertiesファイルを開き、DB接続設定を記載
docker-compose.ymlファイルの記載内容と合わせる
これでアプリとDBを接続することができます
HTML# DB設定 spring.datasource.url=jdbc:mysql://db:3306/spring-boot-demo spring.datasource.username=test spring.datasource.password=test spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- ラベルSpring boot接続確認設定
/src/main/java配下のXXXApplication.javaファイルを開き、添付のとおり修正してください。
「localhost:8082」に接続した際、Spring bootに接続できることを確認するための設定になります。
コンテナ作成・起動
ターミナルを開き、docker-compose.ymlファイルを置いてある位置まで移動してください。
cd /Documents/docker
Bashそして、以下のコマンドを実行して、コンテナ作成・起動を行います。
docker compose up
Bash添付のとおり、「Started XXXApplication」と表示されていたら起動完了です。

WorkBench接続・確認
DBのコンテナが起動しているはずなので、WorkBenchで接続確認していきます。
WorkBenchを起動したら、MySQL Connectionsの右横にある+アイコンをクリックして、コネクション設定画面を開きます。

Hostname:localhost or 127.0.0.1
Port :3306
Username:test ※docker-compose.ymlファイルの「MYSQL_USER」の値
Connection Nameは任意の値を入力してください。
入力が終わったら、「Test Connection」をクリックし接続確認をしてください。
添付画像のとおり表示されたら接続OKです。
※パスワードの入力を求められた場合、docker-compose.ymlファイルの「MYSQL_PASSWORD」の値を入力してください

コネクション設定画面で「OK」ボタンをクリックし、保存してください。
Spring boot接続確認
Spring bootのコンテナが起動しているはずなので、接続確認をしていきます。
ブラウザを開き、「localhost:8082」に接続してください。
添付のとおり、「Spring boot Start」と表示されれば接続完了です。

まとめ
このようにDockerでは、docker-compose.ymlのような必要ファイルを共有すれば、簡単に他の人が同じ環境を作成できます。
そのため、Dockerは開発現場で重宝されます。
Dockerは必ず学ぶべき技術なので、学習しておきましょう。
初心者でも分かるように分かりやすく説明してくれている以下の書籍をオススメします。

コメント