🐋
FastAPI が動く諸々整った Python 環境を Docker で作ってみる
はじめに
- この記事では、最近 WSL2 を使い始めた私が、FastAPI が動く諸々整った Python 環境を Docker で作る方法を、メモとして残します。
- FastAPI で単に Hello, World するためだけの環境ではなく、フォーマッタ、リンタ、型チェック、ユニットテスト、パッケージ管理などを導入した環境を用意しました。
- また、VSCode 上でのテストカバレッジの可視化についても実施できるようにしました。
- この記事は、nikkie さんの Hatena Blog を参考にして作成しました。いくつかの記事の Tips をまとめたものを作成したイメージです。
- 都度ブログへのリンクを貼っていますので、詳細はそちらを参照いただければと思います。
- こちらのブログには、よくお世話になっています。ありがとうございます。mm
Dockerfile を作成する
- まずは、必要なモジュールがインストールされた Docker イメージを用意します。
- パッケージ管理には、pyproject.toml と Poetry を使用しています。
- Docker イメージは、マルチステージビルドを適用しています。
- 参考
- 今回は Poetry の仮想環境を必ずしも使用する必要がないため、仮想環境を無効化しています。
フォーマッタ、リンタ、型チェック、ユニットテストを楽に適用できるようにする
- Python向けのタスクランナーである taskipy を使用して、
$ task test
を実行した際に、以下のモジュールを順に実行するようにしています。- 実行するモジュール
- autoflake
- black
- isort
- pyupgrade
- mypy
- pytest
- 参考
- 実行するモジュール
VSCode 上でのテストカバレッジの可視化を実施できるようにする
- .vscode 配下に必要な設定を記述します。
- VSCode のサイドバーの Testing から、ユニットテストの実行後、画面下部の Watch を押下することで、カバレッジを可視化することができます。
- VSCode のサイドバーの Testing から、ユニットテストの実行後、画面下部の Watch を押下することで、カバレッジを可視化することができます。
おわりに
- この記事では、FastAPI が動く諸々整った Python 環境を Docker で作る方法を、メモとして残しました。
- FastAPI に限らず、諸々整った Python 環境を Docker で作りたい方の参考になればと思います。
Discussion