Python 開発環境の Docker 化
Naofumi Yamada
Data Engineer#
Python の環境 / パッケージ管理色々ありすぎ問題Python の仮想環境やパッケージ管理周りのツールは種類が多くてどれ使ったら良いか分からないですね。 古参の Pip 派もいれば、安定の Pipenv、toml カッコ良いから Poetry、Pyflow など。
- Pip
- conda
- Pipenv
- Poetry
- Pyflow
ここは悩まずに Docker にしてしまいましょう。 これで、開発マシンへの依存を Docker のみにすることができます。
#
Dockerfile開発が進んだ際に debug と production でステージを分けやすいよう pipenv か poetry を使います。ここでは pipenv を使ってみましょう。
#
MakefileDockerfile だけでなく、Makefile でラップコマンドを用意しておくと、開発環境からよく使う作業を make xxx
で実行できます。
ここでは、vet で型検査、fmt でコードフォーマット、doc でドキュメントビルド、test でテストをするように設定します。必要なライブラリは、Pipfile に書いておきましょう。
#
おしまいDockerfile と Makefile を作って、ライブラリを包んでやることでローカルマシンに依存しない環境ができました。Pipenv でもできますが、Makefile でコマンドもつけておくと、Linux 環境では make xxx
で処理をラップできて捗ります。