DockerでPython開発環境を構築する完全ガイド
![]() |
20万件以上の案件から、副業に最適なリモート・週3〜の案件を一括検索できるプラットフォーム。プロフィール登録でAIスカウトが自動的にマッチング案件を提案。市場統計や単価相場、エージェントの口コミも無料で閲覧可能なため、本業を続けながら効率的に高単価の副業案件を探せます。フリーランスボード |
| |
週2〜3日から働ける柔軟な案件が業界トップクラスの豊富さを誇るフリーランスエージェント。エンド直契約のため高単価で、週3日稼働でも十分な報酬を得られます。リモートや時間フレキシブルな案件も多数。スタートアップ・ベンチャー中心で、トレンド技術を使った魅力的な案件が揃っています。専属エージェントが案件紹介から契約交渉までサポート。利用企業2,000社以上の実績。ITプロパートナーズ |
| |
10,000件以上の案件を保有し、週3日〜・フルリモートなど柔軟な働き方に対応。高単価案件が豊富で、報酬保障制度(60%)や保険料負担(50%)など正社員並みの手厚い福利厚生が特徴。通勤交通費(月3万円)、スキルアップ費用(月1万円)の支給に加え、リロクラブ・freeeが無料利用可能。非公開案件80%以上、支払いサイト20日で安心して稼働できます。Midworks |
Pythonの開発環境構築は、バージョン管理や依存関係の問題で複雑になりがちです。Dockerを使用することで、これらの問題を解決し、チーム間で一貫した開発環境を構築できます。この記事では、DockerでPython開発環境を効率的に構築する方法を詳しく解説します。
目次
Dockerを使うメリット
環境の統一性
開発者のローカル環境に関係なく、同じPython環境で開発できます。「私の環境では動くのに」という問題を解決できます。
簡単なセットアップ
新しいメンバーでも、数コマンドで同じ開発環境を構築できます。
バージョン管理の簡素化
異なるPythonバージョンや依存関係を簡単に切り替えられます。
基本的なDockerfile作成
最もシンプルなPython開発環境用のDockerfileから始めましょう。
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
requirements.txtの作成
依存関係を管理するため、requirements.txtファイルを作成します。
flask==2.3.3
requests==2.31.0
サンプルアプリケーション
簡単なFlaskアプリケーションを作成してみましょう。
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello Docker Python!"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Docker Composeを使った開発環境
開発効率を向上させるため、Docker Composeを使用します。
# docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
environment:
- FLASK_ENV=development
実際の構築手順
1. プロジェクトディレクトリの作成
mkdir python-docker-project
cd python-docker-project
2. 必要ファイルの作成
上記のDockerfile、requirements.txt、app.py、docker-compose.ymlを作成します。
3. イメージのビルドと起動
docker-compose up --build
4. アプリケーションの確認
ブラウザで http://localhost:5000 にアクセスして動作を確認します。
よく使われるPythonベースイメージ
python:3.11-slim
軽量で必要最小限のパッケージが含まれています。本番環境におすすめです。
python:3.11
フル機能版で、開発に必要なツールが豊富に含まれています。
python:3.11-alpine
最も軽量ですが、一部のPythonパッケージでコンパイルエラーが発生する場合があります。
開発効率を上げるDockerfile
開発時の利便性を向上させるため、以下のような設定を追加できます。
FROM python:3.11-slim
# 環境変数の設定
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
WORKDIR /app
# システムの依存関係をインストール
RUN apt-get update && apt-get install -y \
gcc \
&& rm -rf /var/lib/apt/lists/*
# Python依存関係のインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# アプリケーションコードのコピー
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
データベースを含む開発環境
PostgreSQLを含む本格的な開発環境の例です。
# docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
depends_on:
- db
environment:
- DATABASE_URL=postgresql://user:password@db:5432/myapp
db:
image: postgres:15
environment:
POSTGRES_DB: myapp
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
トラブルシューティング
よくある問題と対処法
ポート番号の競合 docker-compose.ymlでポート番号を変更するか、既存のプロセスを停止してください。
パッケージインストールエラー requirements.txtのバージョン指定を確認し、必要に応じてシステムパッケージを追加してください。
ファイル変更が反映されない volumeマウントが正しく設定されているか確認してください。
セキュリティ対策
本番環境向けの設定
FROM python:3.11-slim
# 非rootユーザーの作成
RUN useradd -m -u 1000 appuser
WORKDIR /app
# 依存関係のインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# アプリケーションファイルのコピー
COPY . .
# ファイルの所有権を変更
RUN chown -R appuser:appuser /app
# 非rootユーザーに切り替え
USER appuser
EXPOSE 5000
CMD ["python", "app.py"]
パフォーマンス最適化
マルチステージビルド
# ビルドステージ
FROM python:3.11 as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user --no-cache-dir -r requirements.txt
# 実行ステージ
FROM python:3.11-slim
WORKDIR /app
# ビルドステージからライブラリをコピー
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
まとめ
DockerでPython開発環境を構築することで、チーム開発の効率性と一貫性を大幅に向上させることができます。この記事で紹介した手法を参考に、プロジェクトに最適な開発環境を構築してください。
重要なポイント
- 適切なベースイメージの選択
- requirements.txtによる依存関係管理
- Docker Composeによる複数サービスの管理
- セキュリティとパフォーマンスの考慮
継続的に環境を改善し、開発チーム全体の生産性向上を目指しましょう。
■「らくらくPython塾」が切り開く「呪文コーディング」とは?
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座
![]() |
20万件以上の案件から、副業に最適なリモート・週3〜の案件を一括検索できるプラットフォーム。プロフィール登録でAIスカウトが自動的にマッチング案件を提案。市場統計や単価相場、エージェントの口コミも無料で閲覧可能なため、本業を続けながら効率的に高単価の副業案件を探せます。フリーランスボード |
| |
週2〜3日から働ける柔軟な案件が業界トップクラスの豊富さを誇るフリーランスエージェント。エンド直契約のため高単価で、週3日稼働でも十分な報酬を得られます。リモートや時間フレキシブルな案件も多数。スタートアップ・ベンチャー中心で、トレンド技術を使った魅力的な案件が揃っています。専属エージェントが案件紹介から契約交渉までサポート。利用企業2,000社以上の実績。ITプロパートナーズ |
| |
10,000件以上の案件を保有し、週3日〜・フルリモートなど柔軟な働き方に対応。高単価案件が豊富で、報酬保障制度(60%)や保険料負担(50%)など正社員並みの手厚い福利厚生が特徴。通勤交通費(月3万円)、スキルアップ費用(月1万円)の支給に加え、リロクラブ・freeeが無料利用可能。非公開案件80%以上、支払いサイト20日で安心して稼働できます。Midworks |







