Skip to content

infra(compose): MySQL 8.4 + Keycloak Docker Compose スタック雛形 #213

Description

@win2cot

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 しない)

受入条件

  • docker-compose.local.yml が repo root に存在
  • docker compose -f docker-compose.local.yml up -d で 2 サービスが起動
  • docker compose psmysql keycloak 両方 Up (healthy) または Up
  • MySQL に外部から接続可能(mysql -h 127.0.0.1 -P 3306 -u tasks_webapi -p、password 入力で OK)
  • Keycloak admin console アクセス可能(http://localhost:8080、admin / admin で login)
  • docker compose down でクリーンに停止、-v 付きで volume も削除可能

想定影響範囲

  • ./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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/infraAWS インフラ(ECS Fargate / RDS / Keycloak / IAM)変更claude:ready実装着手 OK のサイン。人が付与すると実装 Claude が起動priority/p0Critical / Blocker。本番影響あり、または他作業がブロックされるtask-type:implコード実装が主体のタスク

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions