【Docker】Spring boot開発環境構築

Docker
本ページはプロモーションが含まれています。

いまや、開発環境構築の主流となっている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

作業の流れ

作業の流れ
  • Step1
    docker-compose.ymlファイル作成
  • Step2
    Spring bootアプリケーション作成
  • Step3
    コンテナ作成・起動
  • Step4
    WorkBench接続・確認
  • Step5
    Spring 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
YAML

Spring bootアプリケーション作成

Spring bootのアプリケーションはEclipseで作成していきます。
Eclipseをインストールしていない方は、こちらからでも作成できます。

以下、Eclipseを利用したSpring bootアプリケーションの作成手順になります。

タイムラインのタイトル
  • Step1
    Eclipseを開く

  • Step2
    ワークスペースを選択&起動する

    「参照」ボタンをクリックして、Spring bootアプリケーションを配置するディレクトリを選択して、起動する

  • Step3
    ウィザード選択ダイアログを表示する

    パッケージ・エクスプローラー上で右クリック > 「新規」をホバー > 「その他」をクリック
    ※ワークスペース上にプロジェクトがない場合、「プロジェクトの作成」と表示されているのでクリック

  • Step4
    Spring スターター・プロジェクトダイアログを開く

    Spring boot > 「Spring スターター・プロジェクト」をダブルクリック

  • Step5
    作成するSpring bootプロジェクトの設定を行う

    以下の通り入力し、「次へ」をクリック
    名前:docker-compose.ymlファイルでバインドマウント設定に記載している末尾の
       ディレクトリ名を記載
       ※/Documents/workspace/demoの場合、demoとなる


    ロケーション:docker-compose.ymlファイルでバインドマウント設定に記載しているパスと

          一致していればOKです

    タイプ:Maven
        ※本記事では、コンテナでMavenを利用して、Spring bootアプリを起動させるため


    Java バージョン:17 ※作成するコンテナのJavaバージョンと合わせる

    依存関係は、添付のとおりチェックボックスにチェックを入れ、「完了」ボタンをクリック

  • Step6
    DB接続設定

    src/main/resources配下のapplication.propertiesファイルを開き、DB接続設定を記載
    docker-compose.ymlファイルの記載内容と合わせる

    これでアプリとDBを接続することができます

    # 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
    HTML
  • ラベル
    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は必ず学ぶべき技術なので、学習しておきましょう。
初心者でも分かるように分かりやすく説明してくれている以下の書籍をオススメします。

本書は、コンテナや仮想化の基本的な仕組みを学びながら、Docker Desktopを使って各種サーバーを構築する方法を解説しています。Dockerは奥が深いツールですが、本書ではLinuxやWebサーバー、データベース、WordPressなどの設定ファイルを掲載して、それらの仮想サーバーをすぐに立ち上げられるような構成になっています。すべての操作手順をステップ・バイ・ステップで丁寧に解説しているので、挫折することなく読み進められます。そのため、これまで仮想化技術などにハードルを感じて敬遠していたWebクリエイターや駆け出しのエンジニアが最初に読む本として最適です。
¥2,420 (2025/06/08 16:30時点 | Amazon調べ)

コメント

タイトルとURLをコピーしました