背景
今までWindowsを使っていたのですが、今回初めてMacを買いました。良い機会だったので、今までSpringBootで開発していたプロジェクトをDocker環境に移行してみました。そのときの備忘録を残します。
手順
- プロジェクト用に新規ディレクトリを作成(本記事では
demo
という名で作成) - 次に作成したディレクトリ直下に
docker-compose.yml
を作成- 今回はJDKとMySQLのみ用意
docker-compose.yml
version: '3'
services:
app:
depends_on:
- mysql
image: eclipse-temurin:17
ports:
- 8080:8080
tty: true
volumes:
- ./server:/var/www/html/server
working_dir: /var/www/html/server
mysql:
image: mysql:8.0.26
platform: linux/x86_64
environment:
MYSQL_DATABASE: demo_database
MYSQL_USER: admin
MYSQL_PASSWORD: admin
ports:
- 3306:3306
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
- 同ディレクトリで下のコマンドを実行し、コンテナを立ち上げられることを確認
docker compose up -d
-
docker-compose.yml
と同じディレクトリにserver
というディレクトリを新規作成 -
こちらのページからSpringBootの中身をインストール
- ビルドツール: Gradle
- バージョン
- Spring Boot: 3.1.2
- Java: 17
- 圧縮後の拡張子: Jar
- 依存関係には以下のものを追加
- Spring Boot DevTools
- Lombok
- Spring Web
- Spring Data JPA
- MySQL Driver
- 「GENERATE」ボタンを押してインストールされるzipファイルの中身を、先ほどの
server
ディレクトリ内にコピーする -
src/main/resources/application.properties
に以下を追加
application.properties
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://mysql:3306/demo_database
spring.datasource.username=admin
spring.datasource.password=admin
- 同ディレクトリで下のコマンドを実行し、コンテナの中に入る
docker compose exec app bash
- 下のコマンドを実行してテストビルドを行い、ビルドが成功することを確認
./gradlew build
課題
-
application.properties
を環境変数を用いて設定したい