高木のブログ

【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__/

参考


SNS でシェアする


ytkg

Written by ytkg, Twitter, GitHub