Phase 1 Setup 1-1: Docker Compose スタック雛形(MySQL 8.4 + Keycloak)
概要
ローカル開発環境の基盤として docker-compose.local.yml を作成し、docker compose up -d で MySQL 8.4 と Keycloak(公式 image)が起動する状態を達成する。
詳細仕様: docs/architecture/infrastructure-plan.md v5 §5.2 / §6.2。
背景
Phase 1 Sprint 0(#121「scaffold ↔ 設計書整合実装」)で webapi/ の Flyway / JPA / OAuth2 を実装するために、ローカルで MySQL と Keycloak が動いている必要がある。本 Issue は最初の docker-compose セットアップ(最小起動確認まで)。
Keycloak Realm の設計と JSON export は Setup 1-2 で実施、MySQL 初期化と Flyway 起動確認は Setup 1-3 で実施。
実装内容
A. docker-compose.local.yml(repo root)を新規作成
下記の構成で MySQL 8.4 と Keycloak 24 を起動する。
-
MySQL 8.4 サービス:
- image:
mysql:8.4
- DB 名:
tasks、user: tasks_webapi(IAM 認証は AWS 環境固有なので local は password)
- port:
3306:3306
- volume で
mysql-data を永続化
- healthcheck 付き
-
Keycloak 24 サービス:
- image:
quay.io/keycloak/keycloak:24.0
command: start-dev(開発用、production mode 非使用)
- admin:
admin / admin
- port:
8080:8080
- 開発用 dev-file DB(Keycloak 自身の H2)
B. ボリューム / ネットワーク
- volume:
mysql-data(MySQL データ永続化)
- network: デフォルト(同じ docker-compose スタック内で名前解決)
C. .gitignore 追記(必要なら)
docker-compose.local.override.yml(各開発者のローカル override 用、commit しない)
受入条件
想定影響範囲
./gradlew :webapi:bootRun の起動は env vars を渡せば動作(枠組みは Setup 1-4)
- Setup 1-2 / 1-3 の前提
- WSL の Docker Desktop integration が必要
関連
備考
- task-type:
task-type:impl
- 優先度:
priority/p0(Setup 1 のクリティカルパス)
- area:
area/infra
Phase 1 Setup 1-1: Docker Compose スタック雛形(MySQL 8.4 + Keycloak)
概要
ローカル開発環境の基盤として
docker-compose.local.ymlを作成し、docker compose up -dで MySQL 8.4 と Keycloak(公式 image)が起動する状態を達成する。詳細仕様:
docs/architecture/infrastructure-plan.mdv5 §5.2 / §6.2。背景
Phase 1 Sprint 0(#121「scaffold ↔ 設計書整合実装」)で
webapi/の Flyway / JPA / OAuth2 を実装するために、ローカルで MySQL と Keycloak が動いている必要がある。本 Issue は最初の docker-compose セットアップ(最小起動確認まで)。Keycloak Realm の設計と JSON export は Setup 1-2 で実施、MySQL 初期化と Flyway 起動確認は Setup 1-3 で実施。
実装内容
A.
docker-compose.local.yml(repo root)を新規作成下記の構成で MySQL 8.4 と Keycloak 24 を起動する。
MySQL 8.4 サービス:
mysql:8.4tasks、user:tasks_webapi(IAM 認証は AWS 環境固有なので local は password)3306:3306mysql-dataを永続化Keycloak 24 サービス:
quay.io/keycloak/keycloak:24.0command: start-dev(開発用、production mode 非使用)admin / admin8080:8080B. ボリューム / ネットワーク
mysql-data(MySQL データ永続化)C.
.gitignore追記(必要なら)docker-compose.local.override.yml(各開発者のローカル override 用、commit しない)受入条件
docker-compose.local.ymlが repo root に存在docker compose -f docker-compose.local.yml up -dで 2 サービスが起動docker compose psでmysqlkeycloak両方Up (healthy)またはUpmysql -h 127.0.0.1 -P 3306 -u tasks_webapi -p、password 入力で OK)http://localhost:8080、admin / admin で login)docker compose downでクリーンに停止、-v付きで volume も削除可能想定影響範囲
./gradlew :webapi:bootRunの起動は env vars を渡せば動作(枠組みは Setup 1-4)関連
Phase 1 Setup 1(due 2026-06-13)docs/architecture/infrastructure-plan.mdv5 §5.2備考
task-type:implpriority/p0(Setup 1 のクリティカルパス)area/infra