0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerを使ってPythonスクリプトを実行する(基本)

Posted at

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 にまとめれば、環境が再現可能になります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?