Python開発には様々なライブラリやフレームワークが必要で、その環境構築が複雑になることも珍しくありません。
この記事では、Dockerを用いてPythonの開発環境をスムーズに、そして綺麗に構築する方法をご紹介します。
簡単な「Hello World」プログラムを動かすところまでを解説します。
Dockerを使うメリット
dockerは、アプリケーションをコンテナと呼ばれる隔離された環境で実行するためのツールです。これには数多くのメリットがあります。
- 環境統一: チーム全員が同じDocker環境を共有することで、”でもうちのPCでは動くよ”といった事態を防ぎます。
- 軽量化: 仮想マシンと比較して、Dockerコンテナは軽量であり、リソースを効率よく利用できます。
- 迅速な構築: Dockerfile一つで開発環境をコード化し、どこでも簡単に再現できます。
- 開発環境の維持: Dockerの環境に集約できるので、開発しているPCの環境を汚さないで済みます。
Dockerのインストール方法
Dockerのインストールは簡単です。Docker公式サイトから使用しているPCのOSに合致したDockerをダウンロードし、インストーラに従ってインストールを進めてください。
インストール後、コマンドラインまたはターミナルを開き、docker --version
を実行してインストールが成功していることを確認しましょう。
Python開発環境のDocker化
では、具体的にPython開発環境のDocker化を進めていきましょう。必要なファイルは主に3つです。
- Dockerfile
- docker-compose.yml
- requirements.txt
Dockerfile
Dockerfile
をプロジェクトのルートディレクトリに作成し、以下の内容を追加します。
# イメージのベース
FROM python:3.8
# 作業ディレクトリの設定
WORKDIR /app
# 必要なファイルをコピー
COPY . /app
# 必要なライブラリのインストール
RUN pip install --no-cache-dir -r requirements.txt
# コンテナ起動時に実行されるコマンド
CMD ["python", "./app.py"]
docker-compose.yml
docker-compose.yml
ファイルもプロジェクトのルートに作成し、以下のような設定を行います。
version: '3.8'
services:
app:
build: .
volumes:
- .:/app
ports:
- "8000:5000"
requirements.txt
Pythonのプロジェクトでは、使用する外部ライブラリをrequirements.txt
に記載します。例えば、Flaskを使いたい場合は下記のようにします。
バージョンを指定したい場合はFlask==version番号というような書き方も可能です。今回は最新版をインストールしたいので、バージョン指定は行いません。
Flask
Hello Worldを動かす
最後に、簡単なHello World
プログラムapp.py
をDocker環境で動かしてみましょう。
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
そして、docker-composeコマンドでビルドと起動を行います。
docker-compose up --build
起動後、ブラウザでhttp://localhost:8000
にアクセスし、Hello, World!
が表示されれば成功です。
まとめ
Dockerを使用したPythonの開発環境構築を紹介しました。Dockerは環境差異を減らし、開発の効率化に貢献してくれます。そして、この記事がPythonとDockerの旅の第一歩となれば幸いです。
コメント