swaggerをdockerの中で自動で起動させてみた
よし!その3つを“最低限の理解”レベルで、初心者向けに噛み砕いて説明するね 👍
① pip install とは
-
pip = Python専用の「アプリストア」みたいなコマンド。
-
pip install fastapi
→ FastAPI というライブラリをダウンロード&インストールして、自分のPython環境で使えるようにする。 -
requirements.txt
に一覧があればpip install -r requirements.txt
でまとめてインストールできる。
👉 覚え方:「pip install = Pythonにアプリを入れる」
② Dockerfile と docker-compose.yml の違い
-
Dockerfile
- 1つのコンテナの作り方(設計図)を書く
- 「Pythonを入れる → 必要なライブラリを入れる → uvicornを起動」といった1つの箱のレシピ
- 例: backend 用の Dockerfile
-
docker-compose.yml
- 複数のコンテナをどう組み合わせるかを書く
- 「db(Postgres)と backend(FastAPI)を一緒に立ち上げて連携させる」といった全体のシナリオ
👉 覚え方:「Dockerfile = 箱の作り方」「docker-compose.yml = 箱の組み合わせ方」
③ uvicorn app.main:app
の意味
-
uvicorn
= FastAPIを動かすエンジン。 -
app.main:app
の3つに分解して理解するとわかりやすい👇
-
app(一番左の)
→ フォルダ名(=campus-qiita-backend/app/
) -
main
→ その中のmain.py
ファイル -
:app(最後の部分)
→main.py
の中で宣言したapp = FastAPI()
の「app」変数
つまりこれは👇
👉 「app/main.py
の中にある app
という FastAPI アプリを起動せよ」
🎯 最低限まとめ
- pip install = Pythonにライブラリを入れる
- Dockerfile = 1つの箱の設計図
- docker-compose.yml = 複数の箱をまとめるシナリオ
-
uvicorn app.main:app = 「appフォルダのmain.pyにある
app
を動かす」
👉 この3つを押さえれば、Day4(記事CRUD APIの実装)に十分進めるよ。
質問!この3つのうち「もう少し深く知ってから進みたい」と思うものある?それともDay4に進む?
PRをマージするとき、実は3種類あるんだ👇
Merge commit(今回あなたがやった)
→ feature のコミット履歴が全部 main に入り、1つ「Merge ...」コミットが追加される。
→ main が「汚れる」感じ。
Squash and merge(あなたがやりたいもの)
→ feature ブランチのコミットを 1つのコミットにまとめて main に入れる。
→ main の履歴がスッキリする。
Rebase and merge
→ feature のコミットをそのまま main の後ろに並べ替えて入れる。
→ 履歴が直線的になるけどコミットは残る。