【Java】Docker ComposeでSpring Boot + MySQL環境を構築
2023.05.07
2024.03.24
Docker
Cloud Native BuildpacksDocker ComposeJavaMySQLSpring Boot
はじめに
Docker Compose で Spring Boot のアプリと MySQL を動かす環境を構築していきます。
構築する環境
今回動かすコンテナは下記の 2 つになります。
- Spring Boot のアプリケーション
- MySQL
用意するファイルとディレクトリ構造は下記の通りです。今回は Spring Boot のソースコードについての紹介は省略させていただきます。
1.
2├── docker-compose.yaml
3├── mysql # MySQLのデータ
4└── spring-boot-sample-api # Spring Bootのアプリケーション
Spring Boot アプリのイメージ作成
Spring Boot のアプリケーションのイメージは Cloud Native Buildpacks で作成します。
Cloud Native Buildpacks については下記を参考にしてください。
Cloud Native Buildpacksについてざっくり理解する
はじめに Cloud Native Buildpacksについてざっくり解説し、実際に使ってどん
【Cloud Native Buildpacks】Paketoでjavaアプリをビルドしてみる
はじめに Cloud Native Buildpacksを実現する一つである**Paketo B
下記のコマンドでイメージのビルドをします。
1pack build {image name} -p {path} --builder paketobuildpacks/builder:base
1pack build spring-boot-sample-api -p spring-boot-sample-api --builder paketobuildpacks/builder:base
docker-compose.yaml 作成
docker-compose.yaml
を作成します。spring-boot コンテナと mysql コンテナを定義します。また、MySQL のユーザーやパスワードは環境変数で定義しています。
1version: "3"
2services:
3 spring-boot:
4 image: spring-boot-sample-api
5 ports:
6 - "8080:8080"
7 mysql:
8 image: mysql:8.0
9 ports:
10 - "3306:3306"
11 environment:
12 MYSQL_ROOT_PASSWORD: mysql
13 MYSQL_DATABASE: db
14 MYSQL_USER: spring-boot-user
15 MYSQL_PASSWORD: password
16 volumes:
17 - ./mysql/db:/var/lib/mysql
18 restart: always
コンテナ起動
Spring Boot のイメージとdocker-compose.yaml
が作成できたら、Docker Compose でコンテナを起動します。
1docker compose up -d
起動したコンテナを確認してみます。
1docker container ls
1❯ docker container ls
2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30ea8c571b2fc mysql:8.0 "docker-entrypoint.s…" 13 seconds ago Up 11 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp spring-boot-sample-api-mysql-1
494deae710248 spring-boot-sample-api "/cnb/process/web" 13 seconds ago Up 11 seconds 0.0.0.0:8080->8080/tcp spring-boot-sample-api-spring-boot-1
MySQL の接続確認
とりあえず、MySQL のコンテナに入ってみます。
1docker container exec -it {container name} bash
1❯ docker container exec -it spring-boot-sample-api-mysql-1 bash
2bash-4.4#
環境変数で定義したユーザーで MySQL に接続できます。
1mysql -u spring-boot-user -p
参考
Share