概要:
本記事では、Windows 11上でWSL2、Ubuntu、VSCode、Docker Desktop、およびDevContainersを使用してPipenv環境を構築する方法を詳しく解説します。この方法を使用することで、開発者は効率的で再現性の高いPython開発環境を簡単に構築できます。
この記事で伝えたいこと:
- DevContainersとPipenvを組み合わせることの利点
- 環境構築の具体的な手順
- この方法を使用することで得られる開発効率の向上
解決したい課題:
- 開発環境の再現性の問題
- 異なるプロジェクト間での環境の分離
- チーム間での開発環境の統一
課題の原因:
- 開発者ごとに異なる環境設定
- プロジェクト間の依存関係の競合
- 環境構築の複雑さと時間がかかること
課題を解決する技術、手法:
技術、手法の概要:
WSL2、DevContainers、Pipenvを組み合わせて使用することで、以下の利点が得られます:
- WSL2:WindowsでLinux環境を利用可能
- DevContainers:プロジェクトごとに独立した開発環境を提供
- Pipenv:Pythonの依存関係管理を簡素化
技術、手法の効果:
- 環境の再現性が向上
- プロジェクト間の分離が容易
- チーム全体で一貫した開発環境を使用可能
課題がどう解決されるか:
- DevContainersにより、プロジェクトごとに独立した環境を作成
- Pipenvにより、Pythonの依存関係を効率的に管理
- 設定ファイルをバージョン管理することで、チーム全体で同じ環境を共有可能
応用事例のカタログ化:
- 複数のPythonバージョンを使用するプロジェクトの管理
- 機械学習プロジェクトでの環境構築
- マイクロサービスアーキテクチャの開発環境構築
留意点、デメリット:
- 初期設定に時間がかかる場合がある
- Docker Desktopのインストールが必要
- リソース使用量が増加する可能性がある
具体的な手順:
- 前提条件の確認:
- WSL2とUbuntuのインストール
- VSCodeとRemote - Containers拡張機能のインストール
- Docker Desktopのインストールと設定
- プロジェクトディレクトリの作成:
- WSL2のUbuntu環境でプロジェクトディレクトリを作成
- VSCodeでプロジェクトを開く
cd /usr/local/src/dev/ mkdir myproject cd myproject code .
- DevContainerの設定:
で- ディレクトリ構成
(VScode Workspace root) ├── .devcontainer/ │ ├── Dockerfile │ ├── devcontainer.json │ └── docker-compose.yml └── sample.py
.devcontainer/devcontainer.json
ファイルの作成と設定{ "name": "Python Dev Container", "dockerComposeFile": "docker-compose.yml", "service": "workspace", "workspaceFolder": "/workspace", "customizations": { "vscode": { "extensions": [ "ms-python.python" ] } } }
.devcontainer/Dockerfile
の作成と設定# Python公式イメージをベースにPython3.13.0-bullseyeを指定 FROM python:3.13.0-bullseye USER root # 基本的なパッケージとPipenvをインストール RUN apt-get update && \ apt-get -y install vim openssh-client && \ pip install --upgrade pip && \ pip install pipenv # SSHディレクトリを作成 RUN mkdir -p /root/.ssh && \ chmod 700 /root/.ssh # 作業ディレクトリを指定 WORKDIR /workspace # .gitignoreに.sshを追加するためのファイルを作成 RUN echo ".ssh/" >> /workspace/.gitignore
.devcontainer/docker-compose.yml
の作成と設定version: '3' services: workspace: build: context: .. dockerfile: .devcontainer/Dockerfile environment: PYTHONPATH: /workspace volumes: - ..:/workspace - ~/.ssh:/root/.ssh:ro command: sleep infinity
- ディレクトリ構成
- DevContainerの起動:
- VSCodeのコマンドパレットから「Reopen in Container」を選択
- コンテナのビルドと起動を待つ
- Pipenv環境の構築:
- コンテナ内でPipenvを使用して仮想環境を作成
pipenv --python 3.13.0-bullseye
- Pipenv shellを起動して仮想環境にログイン
pipenv shell
- Pythonバージョンを確認
python --version
- コンテナ内でPipenvを使用して仮想環境を作成
- 開発環境の使用:
- これで、Dev Container内でPipenvによる仮想環境を構築する手順が完了しました。
- コンテナ内で必要なPythonパッケージのインストールや開発作業を行うことができます。
- 終了と再起動:
- VSCodeを終了してコンテナを停止
- 再度作業を行う際は「Reopen in Container」で環境に再接続
この手順を踏むことで、効率的で再現性の高いPython開発環境を構築することができます。
チーム全体で同じ環境を使用することで、「動作しない」といった問題を最小限に抑え、開発効率を向上させることができます。