🐳 FastAPI × Docker × Cloud Run
🐳

FastAPI × Docker × Cloud Run
実践ハンズオン学習

Pythonで REST API を作り、Dockerでコンテナ化して、 Google Cloud Run へデプロイするまでを、手を動かしながら学ぶ日本語チュートリアルです。

3つの技術の役割

FastAPI

  • Python型ヒントで自動バリデーション
  • OpenAPI/Swagger自動生成
  • async/awaitで高速処理
🐳

Docker

  • どこでも同じ環境を再現
  • 依存関係をまとめてパッケージング
  • イメージをそのままデプロイ
☁️

Cloud Run

  • サーバー管理不要のフルマネージド
  • リクエスト数に応じて自動スケール
  • HTTPS・ドメイン自動設定

デプロイの流れ

FastAPI アプリ
docker build
Artifact Registry
Cloud Run
🌐 公開URL

学習コース

13 章・上から順番に進めましょう

1

なぜ FastAPI + Docker + Cloud Run か

初級15

FastAPI、Docker、Cloud Run それぞれの役割と、なぜこの組み合わせが現代のAPI開発に最適なのかを理解する

2

ローカル環境の構築

初級30

Python、uv、Docker、gcloud をインストールし、Google Cloud の初期設定を行う

3

FastAPI 入門

初級45

ルーティング、Pydantic モデル、依存性注入、async/await、自動ドキュメント生成を実際にコードを書いて学ぶ

4

pytest でAPIをテストする

初級30

pytest と httpx を使って FastAPI アプリのテストを書き、CI でも通る自動テストを実装する

5

Docker入門: イメージとコンテナの基本操作

初級30

Docker の根本概念「イメージ」と「コンテナ」の違いを理解し、docker run・ps・logs・stop・rm などの基本コマンドを習得する。hello-world と Nginx を動かしてポート公開を体験する

6

Dockerfile入門: FastAPIをコンテナ化する

初級35

FROM・WORKDIR・COPY・RUN・CMD の各命令を学び、FastAPI アプリを Dockerfile で単体コンテナ化する。ビルドコンテキストとポート公開の仕組みも理解する

7

Dockerfile改善: キャッシュ・マルチステージ・セキュリティ

中級35

.dockerignore でビルドコンテキストを削減し、レイヤキャッシュを活かす命令順序を学ぶ。マルチステージビルドで小さいイメージを作り、non-root ユーザーでセキュリティを高める

8

ComposeとDB: FastAPI + Postgres を一発起動する

中級45

compose.yaml でサービス間通信・環境変数・depends_on・healthcheck・volume を設定し、docker compose up -d --build で FastAPI と Postgres を同時に起動する。volume による DB 永続化も確認する

9

Dockerトラブルシュート集: 詰まったときの調べ方

中級30

docker compose ps / logs / exec / inspect を使ったデバッグ手順を体系化する。ポート競合・デーモン未起動・マウント権限・DB 接続失敗の典型パターンと解決策をカバーする

10

発展: レジストリ・タグ運用・CI/CD・セキュリティ

上級40

Artifact Registry へのイメージ push、タグ運用の考え方、CI/CD との接続、Rootless Docker、Docker Scout によるイメージスキャンを紹介する発展編

11

Cloud Run へのデプロイ

中級45

Artifact Registry にイメージを push し、Cloud Run サービスをデプロイする。IAM、環境変数、Secret Manager の設定も含む

12

運用・トラブルシュート

中級35

Cloud Run のリビジョン管理、トラフィック制御、ログ確認、よくあるエラー (503/404/403) の対処法を学ぶ

13

発展: GitHub Actions で CI/CD を構築する

上級60

GitHub Actions と Workload Identity Federation (OIDC) を使って、プッシュするだけで自動テスト・ビルド・Cloud Run デプロイが走るパイプラインを構築する

必要なツール

🐍
Python 3.10+
FastAPI の実行環境
uv
高速パッケージマネージャー
🐳
Docker Desktop
コンテナのビルド・実行
☁️
gcloud CLI
Google Cloud の操作

インストール方法は 「02 ローカル環境の構築」 で詳しく説明しています。

💬

わからないことはAIに聞こう

このサイトの教材を元に Gemini が回答します。 コマンドの意味、エラーの原因、概念の説明など、何でも質問してください。

AIチャットを開く →