0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Mac】docker で Spring Boot + MySQL の環境を構築する

Last updated at Posted at 2023-02-15

概要

docker を使ったSpring Boot + MySQL の環境構築方法をまとめます。

前提

事前にdockerとgradleをインストール済みとします。

サンプルコード

ディレクトリ構成

$ tree -L 2
.
├── Dockerfile
├── README.md
├── app # 作成したプロジェクト
│   ├── HELP.md
│   ├── bin
│   ├── build.gradle
│   ├── docker-compose.yml
│   ├── gradle
│   ├── gradlew
│   ├── gradlew.bat
│   ├── settings.gradle
│   └── src
├── docker-compose.yml
└── mysql # mysqlの設定ファイル
    ├── init
    ├── my.conf
    └── mysql.cnf

9 directories, 11 files

docker-compose.ymlとDockerfileを作成し、同じディレクトリ内のapp配下に作成したプロジェクトを配置します。
mysqlは以下にはdockerで作成するmysqlサーバーの設定ファイルを配置します。

docker-compose.ymlの作成

version: "3"
services:
  # SQLのサービス
  db:
    image: mysql:8.0
    container_name: "spring_db"
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/init/:/docker-entrypoint-initdb.d # テーブル作成やデータの初期化
      - ./mysql/mysql.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      MYSQL_DATABASE: "spring_test"
      MYSQL_ROOT_USER: "root"
      MYSQL_ROOT_PASSWORD: "root"
      TZ: "Asia/Tokyo"

  # springアプリケーションのサービス
  spring:
    container_name: "spring"
    ports:
      - "8080:8080"
    tty: true
    depends_on:
      - db
    volumes:
      - ./:/app:cached
    working_dir: /app
    build: .

上記ymlファイルを作成し配置します。

DockerFileの作成

FROM eclipse-temurin:17-jdk-alpine
ENTRYPOINT ["java","-jar","/app/build/libs/TaskList-0.0.1-SNAPSHOT.jar"]

上記Dockerfileファイルを作成し配置します。
docker-compose.yml内で記述することも出来ますが、今後個別に設定を追加することを想定してDockerfileを定義しています。

アプロケーションの起動

gradle buildでjarファイル作成後、docker composeで起動させます。

# アプリケーションのビルド
gradle clean build

# 起動
docker compose up -d

最後に

あらかじめgradle buildをしないといけないのが気持ち悪いので、docker composeと同時にビルドするよう設定したいのですが、上手く出来ずやり方を模索中です。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?