親: #206(Sub-issues 参照)
概要
tasks-webapi のコンテナイメージ作成基盤を実装する(infrastructure-plan §6 S2Infra-1)。手段は ADR-0018 で bootBuildImage(Cloud Native Buildpacks)に確定済み。RDS IAM 認証クライアント設定を含む。
方針(確定済み — ADR-0018 / PR #492)
- 手段 = Spring Boot
bootBuildImage。Dockerfile は作成しない
- builder / run image = Spring Boot 4 既定(
builder-noble-java-tiny / ubuntu-noble-run-tiny)、差し替えなし
- リンク方式 = mostly-static(glibc)
- Native 化を阻む重大な課題(hints で解決不能な依存の Native 非対応等)が見つかった場合は本 Issue 内で代替構成に走らず、ADR-0008 / ADR-0018 再検討 Issue を起票して判断する
- 実装主体 = ローカル Claude Code + win2cot 検証(claude-automation 不適用)
やること
受入基準
./gradlew :webapi:bootBuildImage 成功 + ローカル起動で /actuator/health 応答(native 実行)
- イメージに環境固有値が焼き込まれていない(env vars 注入で設定が変わることを確認)
- API JSON の日時が
+09:00 で出力される(native 実行で確認)
- PR 本文に検証ログを記録(起動時間・イメージサイズ実測、追加 hints 一覧と理由、pin 判断、持ち越し事項)
関連
親: #206(Sub-issues 参照)
概要
tasks-webapi のコンテナイメージ作成基盤を実装する(infrastructure-plan §6 S2Infra-1)。手段は ADR-0018 で
bootBuildImage(Cloud Native Buildpacks)に確定済み。RDS IAM 認証クライアント設定を含む。方針(確定済み — ADR-0018 / PR #492)
bootBuildImage。Dockerfile は作成しないbuilder-noble-java-tiny/ubuntu-noble-run-tiny)、差し替えなしやること
webapi/build.gradleにorg.graalvm.buildtools.nativeプラグイン追加 +bootBuildImage最小設定@RegisterReflectionForBinding/META-INF/native-image/に集約(AWS JDBC ドライバ / IAM 認証周りを重点確認)JAVA_TOOL_OPTIONSは native バイナリに無効のためTZenv で実現し、docs: JST 全層統一(設計規約 §2.4 / コーディング規約 §12.1 反転 + infrastructure-plan に JVM/ECS TZ 明文化) #265 の「Native Image 後の挙動要再検証」をここで解消:webapi:nativeCompileが単体実行可能なことを確認(infra(ci-cd): Phase 1 Sprint 2 — tasks-webapi nativeBuild CI job(PR トリガー、changes ゲート)(S2Infra-8) #490 の PR トリガー CI job が直接呼ぶ前提。workflow 自体は infra(ci-cd): Phase 1 Sprint 2 — tasks-webapi nativeBuild CI job(PR トリガー、changes ゲート)(S2Infra-8) #490 スコープ)docs/specs/local-setup.mdに追記(Native build をローカル開発の必須にしない、ADR-0008「ローカル開発戦略」)webapi/Dockerfileを作成」)の doc 同期受入基準
./gradlew :webapi:bootBuildImage成功 + ローカル起動で/actuator/health応答(native 実行)+09:00で出力される(native 実行で確認)関連