プログラミングを頑張る土木系専攻大学院生のブログ

主にプログラミングについて開発備忘録的な形で投稿しています。

Pythonの開発環境をDocker × VSCodeで構築してみた【環境構築編】

Pythonの開発環境をDocker × VSCodeで構築してみた【環境構築編】

 

こんにちは、前回の記事「【事前準備編】」では、DockerとVS Codeの準備、WSLの導入などを紹介しました。 Anaconda(Python3) の環境構築になります。

 

siip.hateblo.jp

 

今回はいよいよ、実際にPythonの開発環境を構築していきます!

📘 参考にしたドキュメント: 簡潔でわかりやすかった

 

learn.microsoft.com

 


🔧 使用するのは「DevContainer」

構築には、VS Code拡張機能 Dev Containers を使います。
これは「Dockerコンテナ内に開発環境を構築する」ための仕組みで、以下のようなメリットがあります👇

✅ DevContainerを使うメリット

  • 環境の再現性
     → 設定ファイルで開発環境を定義でき、誰でも同じ環境を再現可能!

  • ホストOSへの依存排除
     → Windowsでもmacでも、同じLinux環境で開発できる。

  • セットアップが簡単
     → チームメンバーや他のPCでもすぐに使える。

  • VS Codeと強力に連携
     → 補完、Lint、デバッグなど、VS Code機能がそのまま使える!

  • 複雑な構成もOK
     → DBなど複数コンテナを使った環境も構築できる。

  • ホットリロード対応
     → コードの変更が即時反映されて快適!


📁 Step① プロジェクトフォルダをWSL内に作成

📍 なぜWSL内に作るの?

  • WSL内のファイルはLinuxコマンドやDockerと相性が良い

  • WindowsLinux間のファイルアクセスは遅いので、WSL内の方が快適!

# 例
/home/<ユーザー名>/work/python-env

💡 フォルダ作成手順(VS Codeから)

  1. VS Codeを開く

  2. 左下の「><」マーク(Remote)をクリック

  3. 「Remote-WSL: New Window」を選択

  4. Ubuntu などWSLのディストリビューションを選択

  5. ターミナルでフォルダを作成して移動👇

mkdir -p ~/work/python-env
cd ~/work/python-env

この状態で、VS Codeでこのフォルダを開いておきましょう!


🧱 Step② DevContainerの構成ファイルを追加

🧩 拡張機能をインストール

以下の拡張機能をインストールしていない場合は、先に入れておきましょう👇


⚙️ DevContainerをセットアップ

  1. Ctrl + Shift + P でコマンドパレットを開く

  2. Dev Containers: Add Development Container Configuration Files を選択

  3. テンプレートから Anaconda (Python3)  を選択(または好みに合わせて)

オプションで Pythonのバージョンや追加ツール を聞かれますが、最初はデフォルトでOKです。


🧾 dependabot.ymlを含めるか?

セットアップの最後に .github/dependabot.yml を含めるかどうかを聞かれます。

💡 dependabotとは?

GitHubが提供する 依存関係の自動更新ツール です。

# 例: pipとcondaの両方に対応するdependabot.yml
version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "conda"
    directory: "/"
    schedule:
      interval: "daily"

含めるメリット

  • セキュリティの強化

  • 常にライブラリを最新に保てる

  • チームでの依存関係管理がラクになる

小規模プロジェクトや個人開発なら最初は不要でもOK!


📁 作成されるファイル

この操作で、.devcontainer フォルダが作成され、中に以下のファイルが含まれます👇

.devcontainer/
├── devcontainer.json
├── Dockerfile

⚙️ devcontainer.json の中身(一例)

{
	"name": "Anaconda (Python 3)",
	"build": { 
		"context": "..",
		"dockerfile": "Dockerfile"
	},
	"postCreateCommand": "python --version",
	"remoteUser": "root"
}

🐳 Dockerfile の中身(一例)

FROM mcr.microsoft.com/devcontainers/anaconda:1-3

# 必要なら以下をアンコメントしてパッケージ追加も可能
# RUN apt-get update && apt-get install -y <your-package>

🚀 DevContainerの起動

  1. Ctrl + Shift + P で「Dev Containers: Reopen in Container」を実行

  2. 初回はコンテナのビルドに少し時間がかかります

  3. 完了すれば、コンテナ内のPython環境で開発可能になります!


💻 違うPCで同じ環境を使いたい場合

更新:以下の記事で詳しく解説しています!

 

siip.hateblo.jp

 

手順

  1. 発コンテナの構成ファイルを保存

    現在のプロジェクトフォルダ内にある開発コンテナの構成ファイル(devcontainer.jsonDockerfile)を確認してください。これらのファイルには、コンテナの設定や依存関係が記述されています。

  2. プロジェクトフォルダをコピー

    プロジェクトフォルダ全体をGitHubなどのリポジトリにプッシュするか、USBメモリクラウドストレージを使って異なるPCにコピーします。

  3. DockerとDev Containers拡張機能をインストール

    異なるPCにDockerをインストールし、VS Codeの「Dev Containers」拡張機能を追加します。

  4. コンテナを再構築

    VS Codeでプロジェクトフォルダを開き、「Dev Containers: Reopen in Container」を実行します。これにより、構成ファイルに基づいてコンテナが再構築され、同じ環境が利用可能になります。


👉 同じ環境がすぐに再現できます!


🔚 まとめ

これでPythonの開発環境を Docker + VS Code で構築することができました!

  • WSL環境でフォルダ作成

  • DevContainerでPython+DB環境を定義

  • devcontainer.jsonDockerfileで再現性の高い構成を実現

  • 他PCでもすぐに同じ環境を再現可能


✨ 次回予告:「開発環境の管理編」

 

次の記事では、構築した環境の中での開発をもっと快適にするために、以下のテーマを扱います👇

  • Pythonライブラリの管理(pip / conda)

  • VSCode拡張機能のインストール

  • 仮想環境の扱い方やTips

今までローカル環境で使用していた拡張機能などはリモート環境では新たにインストールしなおす必要があります。

 

次回の記事 ↓

 

siip.hateblo.jp