Dockerを利用したPython開発環境の構築方法
Dockerは、さまざまなプロジェクト間での環境の分離と再現性を高めるために非常に役立つツールです。本記事では、Pythonの開発環境をDocker上で構築する手順を紹介します。
1. Dockerfileの準備
Docker環境でPythonを動かすために、まずはDockerfile
を作成します。以下の内容をファイルに記述し、プロジェクトのルートディレクトリに保存します。
# Pythonの公式イメージをベースに使用
FROM python:3.10
# コンテナ内の作業ディレクトリを設定
WORKDIR /usr/src/app
# 依存関係のあるライブラリをコンテナにコピー
COPY requirements.txt ./
# 依存ライブラリをインストール
RUN pip install --no-cache-dir -r requirements.txt
# アプリケーションのソースコードをコンテナ内にコピー
COPY . .
# コンテナ起動時にPythonスクリプトを実行
CMD ["python", "./test-script.py"]
2. 依存関係ファイルの作成
requirements.txt
ファイルに、プロジェクトで使用するPythonライブラリをリストします。例えば、FlaskやNumPyなどのパッケージを記載します。
flask
requests
numpy
3. Dockerイメージのビルド
以下のコマンドを実行して、作成したDockerfileからイメージをビルドします。
docker build -t python-app .
このコマンドは、カレントディレクトリのDockerfileを使用し、python-app
という名前でDockerイメージを作成します。
4. Dockerコンテナの実行
ビルドしたイメージを基に、以下のコマンドでDockerコンテナを実行します。
docker run -it --rm -p 5000:5000 --name my-running-app python-app
このコマンドは、python-app
イメージを使用してmy-running-app
という名前のコンテナを作成し、実行します。オプションの-it
はインタラクティブモードでの実行を可能にし、--rm
はコンテナ終了後にそれを自動的に削除します。
ポートマッピングについて
p 5000:5000
オプションを使用することで、ホストマシンのポートとコンテナのポートをマッピングします。これにより、ホストマシンの5000番ポートからのリクエストがコンテナの5000番ポートへ転送され、外部からのアクセスが可能になります。これは特に、コンテナが提供するWebサーバーやアプリケーションが外部のネットワークやインターネットからアクセス可能になるため、開発やテストで非常に便利です。
5. 動作確認用のPythonスクリプトの追加
以下の内容をtest-script.py
として保存し、Flaskを使用して簡単なWebサーバーを立ち上げます。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, Docker!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
このスクリプトは、ルートURL (/
) にアクセスしたときに “Hello, Docker!” と表示するWebページを提供します。
6. 動作の確認
ブラウザやコマンドラインからhttp://localhost:5000/
にアクセスして、”Hello, Docker!”が表示されることを確認します。これで、PythonアプリケーションがDockerコンテナ内で正しく動作していることが確認できます。
コメント