1. シンプルスクリプトの実行(Print文のみ)
ゴール
ローカルにある main.py を Docker コンテナ上で実行する。
構成例
my-python-app/
├── Dockerfile
└── main.py
main.py(テスト用スクリプト)
print("こんにちは、DockerからPythonです!")
Dockerfile
# Python公式の軽量イメージを使用
FROM python:3.12-slim
# 作業ディレクトリを作成&設定
WORKDIR /app
# スクリプトをコンテナにコピー
COPY main.py .
# スクリプトを実行する(CMD はデフォルトの実行コマンド)
CMD ["python", "main.py"]
ビルド
プロジェクトフォルダ(Dockerfileがある場所)で以下を実行:
docker build -t my-python-app .
実行
docker run --rm my-python-app
- --rm:実行後にコンテナを削除する(お掃除も自動)
結果(ターミナル)
こんにちは、DockerからPythonです!
2. 外部ライブラリ(requests)をインストールしてスクリプトの実行
ゴール
- requests を使った Python スクリプトを Docker で実行
- requirements.txt に依存関係を記述してインストール
構成例
my-python-app/
├── Dockerfile
├── requirements.txt
└── main.py
main.py(requestsを使った例)
import requests
response = requests.get("https://api.github.com")
print("GitHub API ステータスコード:", response.status_code)
requirements.txt
requests
- 他のライブラリが増えたらここに追加していけばOKです。
Dockerfile
FROM python:3.12-slim
WORKDIR /app
# requirements.txt を先にコピーしてインストール(キャッシュ効かせるため)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# スクリプト本体をコピー
COPY main.py .
# 実行
CMD ["python", "main.py"]
ビルド
プロジェクトフォルダ(Dockerfileがある場所)で以下を実行:
docker build -t my-python-app .
実行
docker run --rm my-python-app
- --rm:実行後にコンテナを削除する(お掃除も自動)
結果(ターミナル)
GitHub API ステータスコード: 200
普段のPythonアプリをそのまま requirements.txt
にまとめれば、環境が再現可能になります!