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

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

Pythonの開発環境をDocker × VSCodeで構築してみた【快適カスタマイズ編】

Pythonの開発環境をDocker × VSCodeで構築してみた【快適カスタマイズ編】

 

 

siip.hateblo.jp

siip.hateblo.jp

 

前回までの記事で開発環境を構築することができました。

 

今回は、以下の4点にフォーカスして、開発環境をさらに快適に整えるための方法を紹介します。


🔧 今回のポイント

  • Pythonライブラリの管理(environment.yml

  • VSCode拡張機能の管理(devcontainer.json

  • ✅ 追加のOSパッケージのインストール(Dockerfile

  • ✅ プロジェクトフォルダの構成例 

 

 


1. Pythonライブラリの管理方法(environment.yml

Pythonライブラリはenvironment.ymlファイルを使ってまとめて管理できます。Anacondaベースの環境ならcondapipで必要なライブラリをインストール可能です。

📄 environment.ymlの例

name: base
channels:
  - defaults
dependencies:
  - django
  - psycopg2
  - pip
  - pip:
      - djangorestframework
      - django-cors-headers
      - django-environ
      - django-debug-toolbar

🔍 conda listで現在インストール済みのライブラリを確認できます。

⚙️ Dockerfileで読み込む設定

Dockerfile内の以下の記述で、環境を構築時にenvironment.ymlを適用します。

COPY environment.yml* .devcontainer/noop.txt /tmp/conda-tmp/
RUN if [ -f "/tmp/conda-tmp/environment.yml" ]; then \
      umask 0002 && /opt/conda/bin/conda env update -n base -f /tmp/conda-tmp/environment.yml; \
    fi && rm -rf /tmp/conda-tmp

💡 開発途中でライブラリを追加したい場合

conda env update --file environment.yml

で環境を更新できます。


2. VS Code拡張機能の管理(devcontainer.json

開発中に便利なVSCode拡張機能は、devcontainer.jsonで事前に定義しておくと、他のPCでも自動インストールされて快適です!

📄 拡張機能の設定例

"customizations": {
  "vscode": {
    "extensions": [
      "ms-python.python",
      "ms-python.vscode-pylance",
      "ms-toolsai.jupyter",
      "GitHub.copilot",
      "dbaeumer.vscode-eslint",
      "batisteo.vscode-django",
      "monosans.djlint"
    ]
  }
}

🔍 拡張機能IDの確認方法

VS Code拡張機能マーケットプレイスで、必要な拡張機能のIDを確認します。

IDは下記の画像を参考にしてください。オプション⚙をクリックし、

拡張機能IDのコピーから取得

 

追記:

わざわざIDをコピーしなくても以下の画像のように、直接追加することができるみたいです。

 

 


3. OSパッケージの追加(Dockerfile

Linux系のコマンドや開発ツールを使う場合、OSパッケージのインストールもできます。

📄 例:curlとgitをインストール

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends curl git

再構築はおなじみ「Dev Containers: Rebuild Container」でOK!


4. プロジェクトのフォルダ構成案

最後に、プロジェクトをチームや将来の自分が見ても分かりやすいように、フォルダ構成も整えましょう。

project-root/
│
├── data/                # データファイル(CSV、画像など)
│   ├── raw/
│   ├── processed/
│   └── external/
│
├── notebooks/           # 分析用ノートブック(Jupyter)
│   └── analysis.ipynb
│
├── src/                 # Pythonコード(モジュール)
│   ├── __init__.py
│   ├── data_loader.py
│   ├── preprocess.py
│   └── model.py
│
├── tests/               # テストコード
│   └── test_model.py
│
├── environment.yml      # Conda環境設定ファイル
├── requirements.txt     # pip用(必要に応じて)
├── Dockerfile
├── .devcontainer/       # Dev Container設定フォルダ
├── README.md
└── .gitignore

📦 これでどこから見ても整理されたプロジェクトになります!


✨ まとめ

設定対象 ファイル 効果
Pythonライブラリ environment.yml 必要なパッケージを一括管理
VSCode拡張機能 devcontainer.json 自動で拡張機能をインストール
OSパッケージ Dockerfile Linuxコマンド・ツールを追加
フォルダ構成 プロジェクト全体 見通しよく管理しやすい構造に

次回は「GitHub Codespacesやチームでの共有方法」など、より実践的な活用術も紹介予定です 💪


この形式で記事をはてなブログに投稿できますが、タイトルや導入文などアレンジしたい箇所があれば教えてください!