マルチステージビルドの理解、docker-compose による複数サービス起動、GitHub Actions 全ジョブ緑、trivy セキュリティスキャン、@claude メンションでの AI 自動 PR まで、3時間で本番運用に近い CI/CD を実機で動かします。
動くアプリと CI の現状を確認、Day3 の到達点を握る。[10分]
マルチステージ・非rootユーザ・健全な layer 順を理解し、実機で build。[20分]
app + DB の構成、healthcheck、ホットリロード設定の動作確認。[25分]
GitHub Actions の lint/typecheck/test/docker-build を全て緑に。[20分]
10分
イメージ脆弱性検出を CI に組み込み、検出された脆弱性に対応。[25分]
Issue に @claude を書いて Claude Code が PR を起こす流れを体験。[25分]
自分の Vercel アカウントへ自動デプロイ、業務適用への落とし込み。[35分]
持ち帰る3アクションと1ヶ月後のフォロー予告。[10分]
Day2で完成したアプリと CI の現状を確認し、Day3で達成する状態を明確にします。
Day1開始時点で雛形が配布されています。これを「読む」「動かす」「改善する」の3段階で進めます。ゼロから書く時間はありません。
研修開始前に Docker Desktop が起動していることを確認してください。docker --version でバージョンが返ればOK。返らなければ Docker Desktop の起動か、WSL2の更新が必要です。
20分で配布物の Dockerfile を読み解き、build → run までを実機で動かします。
リポジトリの Dockerfile を開きます。builder ステージで依存導入、runtime ステージで非rootユーザ起動の二段構成です。読み解くポイントは下記4つ。
FROM python:3.11-slim AS builder でビルド専用ステージpip install --prefix=/install で site-packages を独立配置FROM python:3.11-slim AS runtime で実行ステージを切り分けUSER app で UID 1000の非rootユーザに切り替えカスタムプロンプトを呼び出して、配布 Dockerfile に対する改善余地を出させます。
カスタムプロンプトは .github/prompts/dockerfile-review.prompt.md に定義されています。
build 後のイメージサイズが300MB 以下に収まっているかを確認してください。slim ベースなので200MB 前後が目安です。
Session 02で出た指摘の中から「致命的」と「中」だけを Dockerfile に反映させます。
Cannot connect to the Docker daemon → Docker Desktop が起動していない--platform linux/amd64 を build に付けると CI と同じアーキで検証可能25分で app + postgres の2サービス構成を動かし、healthcheck と依存順序まで含めて理解します。
配布物では postgres サービスがコメントアウトされています。Claude Code に有効化を依頼します。
aiosqlite から asyncpg に切り替えるため、requirements.txt と app/config.py を更新します。
app と postgres の両方が healthy になることを確認してください。
シードが入って health チェックが通れば、ローカルで本番想定の構成が動いています。
-v で永続ボリュームも削除します。SQL の状態をリセットしたいときも使います。
20分で GitHub Actions の docker-build ジョブを動作させ、4ジョブ(lint / typecheck / test / docker-build)全て緑の PR を作ります。
.github/workflows/ci.yml を開いて、docker-build ジョブの定義を読みます。docker/setup-buildx-action と docker/build-push-action でビルドキャッシュを GHA Cache に持たせています。
動作を理解するために、わざと CI を落としてみます。app/main.py の末尾に print("debug") を追加して push してください。ruff の lint ジョブが落ちます。
GitHub の Actions タブで、どのジョブが落ちたか確認します。失敗ジョブをクリックし、エラー出力をコピー。
Claude Code は print を logging に置換するか削除する提案を返します。反映して再 push。
Actions タブで lint / typecheck / test / docker-build の4ジョブが全て緑になることを確認します。これが Day3の必須到達点です。
25分でビルド済みイメージに対する脆弱性スキャンを CI に組み込み、検出された脆弱性に対応します。
初回は脆弱性 DB のダウンロードがあるので少し時間がかかります。HIGH / CRITICAL の脆弱性件数を確認してください。
HIGH / CRITICAL の検出があれば、Claude Code に対応策を聞きます。
提案された修正を反映 → push → CI を緑にする、までやり切ります。trivy ジョブが緑になるか、HIGH のみで warn 表示の状態が許容ラインです。
25分で Issue → @claude メンション → Claude Code Action による自動 PR 生成を体験します。
.github/workflows/claude.yml が配布されています。動かすには次の事前準備が必要です。
claude /install-github-app を実行ANTHROPIC_API_KEY を登録EMU 組織側で App インストールが社内承認待ちになっている場合は、講師実演を見る形でも構いません。
GitHub の Issues タブから New Issue → feature_request テンプレを選び、下記の本文で起票します。
Issue 投稿後5〜10分で、Claude Code Action が次のいずれかの動作をします。
Actions タブで claude ジョブの実行ログを並行確認してください。
ドラフト PR が上がったら、Files changed タブで差分を確認します。
気になる点は PR コメントに @claude を含めて返信すれば、Claude Code が追加修正をかけます。
4ジョブ全緑+trivy も緑になったら Squash and Merge。これで Issue 起票 → AI 実装 → CI 緑 → マージのフローが1周しました。
組織側で claude.yml が動かない場合は、ローカルの Claude Code でも同じ流れをシミュレートできます。claude /init でセッションを開始し、Issue 本文を貼って「このIssueを実装してPRを作って」と依頼してください。
35分で発展課題として Vercel 自動デプロイを試し、業務適用に向けたツール戦略を整理します。
https://vercel.com に GitHub ログインでアカウント作成。社内承認が必要な場合はスキップして、講師実演を見るだけでも構いません。
詳細は docs/deploy_vercel.md を参照。Vercel ダッシュボードから自分の Fork リポジトリを Import → デプロイ。
発行された URL (例: https://<プロジェクト名>-<自分のアカウント>.vercel.app/api/health) を curl で叩いて、 {"status": "ok"} が返ることを確認します。
.github/workflows/vercel.yml が同梱されています。Secrets に VERCEL_TOKEN / ORG_ID / PROJECT_ID を登録すれば、main への push で自動デプロイが走ります。
| ツール | 役割 | 本研修での使い方 |
|---|---|---|
| Claude Code | 同期(Chat) / 非同期(GitHub Action)エージェント | Day1設計生成、Day2実装、Day3自動 PR |
| GitHub Copilot | 補完中心の支援 | 初級研修で扱った領域。中級では Claude Code 主軸 |
| Cursor / Continue | エディタ統合の対話的支援 | 本研修対象外、業務適用時の選択肢 |
| Docker / docker-compose | 環境のコード化 | Day3 Session 02-03 |
| GitHub Actions | CI / CD パイプライン | Day3 Session 04-05 |
| trivy | イメージ脆弱性スキャン | Day3 Session 05 |
| Vercel | サーバレスホスティング | Day3 Session 07発展課題 |
3日間で何ができるようになったか、業務にどう接続するかをまとめます。
.github/copilot-instructions.md または CLAUDE.md を作り、エラー規約・命名規約・テスト方針を書くJBS 側で別途、業務工程の AI 適性スコア化アプリを案内します。日常業務のうち、どの工程が AI に任せやすいか、どこは人間が最終判断すべきかを可視化するブラウザアプリです。研修後の各自のワークフロー設計に役立ててください。
2026/06/28頃に JBS 事務局からアンケートが届きます。「研修内容を業務で使えたか」「使えなかったとしたら何が足りなかったか」を率直に書いてください。次回研修の改善に活用します。