【Python】Docker で FastAPI の開発環境を構築する
2023/03/12
バージョン
- Docker 20.10.21
- Docker Compose 2.12.2
- Python 3.11
手順
アプリのディレクトリ作成と移動
$ mkdir rails-app
$ cd rails-app
必要なファイルの準備
以下、4つのファイルを作成する
- Dockerfile
- compose.yml
- main.py
- requirements.txt
Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
COPY . /app
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0"]
compose.yml
services:
web:
build: .
command: uvicorn main:app --reload --host 0.0.0.0
volumes:
- .:/app
ports:
- 8000:8000
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return { "message": "Hello World!" }
requirements.txt
fastapi
uvicorn[standard]
ビルドと起動
$ docker compose build
$ docker compose up
確認
$ curl localhost:8000
{"message":"Hello World!"}
補足
__pycache__ というディレクトリが自動生成される
これはキャッシュを保存しておくためのディレクトリなので、Git 使う場合は除外対象にしておく
.gitignore
__pycache__/