🐍
Dockerコンテナ上で動くPythonの開発環境のテンプレートを作ってみた
GitHub上で色んな方のテンプレートを拝見しましたが、Dockerコンテナ上で開発することを想定したモノがあまりなかったので自分で作りました!
※ 2023/08/01時点ではPython3.10のイメージを使用
導入方法
Use this templateの場合
こちらは新規でPythonプロジェクトを開始する際にオススメです。
"Use this template"を押下し、任意の名前の新規のリポジトリを作成してください。
Cloneの場合
こちらはモノレポで複数のプロジェクトを管理する際に、新たなプロジェクトとしてPython環境を導入する際にオススメです。
導入するためのコマンド例を記載しますので参考にいただけたらと思います。
git clone https://github.com/tamtam-fitness/python-template-based-on-docker.git <new-project>
cd <new-project>
rm -rf .git
使い方
コンテナの立ち上げ
make setup
コンテナ内へのアクセス
make enter_container
Lint
make lint
Format
make format
Test
make format
特定のテストファイル/フォルダの実行
Poe the Poetを使用し実行します。
make enter_container
poetry shell
poe test tests/{file or directory you want to test}
インストール済みの主なパッケージ一覧
※ 2023/08/01時点
名称 | バージョン | 内容 |
---|---|---|
poetry | 1.5.1 | Pythonのパッケージ管理を行うツール(こちらはpipで管理) |
poethepoet | 0.21.1 | poetryを用いたTaskランナー(taskipyのようなもの) |
pydantic | 2.1.1 | 型アノテーションを利用した型のバリデーション(Dataclassesとの比較はこちら) |
pydantic-settings | 2.0.2 | Pydanticを用いた設定管理 |
pyyaml | 6.0.1 | yamlファイルを処理(リポジトリで管理可能な環境変数をyamlに記載し読み込むために使用) |
ruff | 0.0.265 | Rust製で書かれたリンター及びフォーマッター |
black | 23.7.0 | コードのフォーマッター(Ruffは一部の機能が未実装のため補完のために使用) |
mypy | 1.4.1 | 静的解析による型チェッカー |
pytest | 7.4.0 | Pythonのテスティングフレームワーク |
pytest-cov | 4.1.0 | pytestのカバレッジを計測するプラグイン |
pytest-mock | 3.11.1 | unittest.mock の薄いラッパーであるmockerを提供するプラグイン |
pytest-env | 0.8.2 | pytest実行時のみに使われる環境変数を設定するために使われるプラグイン |
sentry-sdk | 1.29.0 | SentryのPythonクライアント |
おまけ
過去にAWS Lambda × FastAPI用のテンプレートを作ったことがあります。
詳細については以下の内容を参照いただけますと嬉しいです!
Discussion