大阪でホームページ制作ならプロットハブ

大阪で安いホームページ制作ならプロットハブ!
毎月5社限定企画実施中

プロットハブ技術ブログ

Dockerで構築したPython環境をVS CodeのDevContainerへ接続してリモートデバッグする

Hidekazu Koga

Hidekazu Koga

2024/10/11

はじめに

開発環境や運用環境を統一するため、Dockerコンテナを使用して環境を構築することが一般的になっているかと思います。この記事ではDockerで構築したPython環境を、VS CodeのDevContainerへ接続してリモートデバッグが実行できる設定について解説します。

GitHubリポジトリ

本記事で解説するソースコードは以下のリポジトリからダウンロードできます。

https://github.com/hdkzkg/vscode-python-docker

ディレクトリ構成

既存のPython環境の構成を下記の通りとします。

project
├── docker
│ └── Dockerfile
├── src
│ └── test.py
├── docker-compose.yml
└── requirements.txt

DevContainerへ接続するために下記の.devcontainer ディレクトにdevcontainer.jsonファイルを追加します。

ファイル解説

devcontiner.json
{
	"name": "vscode-python-docker",
	"dockerComposeFile": "../docker-compose.yml",
	"service": "app",
  	"workspaceFolder": "/workspace",
	"customizations": {
		"vscode": {
			"extensions": [
				"ms-python.python"
			]
		}
	}
}
  • name:Dev Containerの識別名です。
  • dockerComposeFile:Dev Containerを起動する際に使用するdocker-compose.ymlファイルへの相対パスを指定します。
  • service:Dev Containerへ接続するコンテナを指定します。docker-compose.ymlのサービス名と一致する必要があります。
  • workspaceFolder:Dev Containerのworkspaceを指定します。Dev Container接続後のターミナルのデフォルトディレクトリ、VS Code左側のファイルエクスプローラーのディレクトリになります。
  • customizaiotns:Dev ContainerへVS CodeのPython拡張機能をインストールしています。リモートデバッグを使用する場合は、コンテナ側に拡張機能をインストールする必要があります。
Dockerfile
FROM python:3.11

WORKDIR /workspace

COPY requirements.txt ./

RUN pip install -r requirements.txt

Pythonのバージョンは3.11を使用しています。別のバージョンを使いたい方は、別のバージョンを指定してください。

作業ディレクトリに`/workspcae`を指定しています。

Dockerイメージを作成する際に、requirements.txtから必要なライブラリをインストールしています。

docker-compose.yml
version: '3.8'

services:
  app:
    container_name: vscode-python-docker
    build:
      context: .
      dockerfile: docker/Dockerfile
    volumes:
      - ./:/workspace
    tty: true

先程解説したDockerfileからコンテナを起動しています。

requirements.txt
requests

テスト用にrequestsのみをインストールするようにしています。

複数のライブラリをインストールする場合は、改行して記入していください。

requests==2.26.0のようにバージョンを指定することも可能です。

動作確認

コンテナ起動

Ctrl + Shift + pでコマンドパレットを開き、Dev Containers: Reopen in Containerを選択し、DevContainerを起動します。

インテリセンスや実行(デバッグ)ボタンが使用できることが確認できます。

ライブラリのインストール

ターミナルを開き、下記のコマンドを実行します。

pip list

requirements.txtに記載したrequestsモジュールがインストールされれていることが確認できます。

Package            Version
------------------ --------
certifi 2024.7.4
charset-normalizer 3.3.2
idna 3.7
pip 24.0
requests 2.32.3
setuptools 65.5.1
urllib3 2.2.2
wheel 0.43.0
test.py
import requests


respose = requests.get('https://jsonplaceholder.typicode.com/users')

for data in respose.json():
    print(data.get('name'))

テスト用のjsonを返す無料のAPI(JSONPlaceholder)を使用しています。実行するとデータ取得できることが確認できました。

まとめ

既存のPythoのDocker環境をVS CodeのDevContainerに接続してリモートデバッグできる設定方法について解説しました。

サンプルプロジェクトは簡単な構成でしたが、devcontainer.jsonファイルを作成するだけで、VS CodeのDevContainerに接続でき、リモートデバッグが可能になります。VS Codeで開発を行う場合は、リモートデバッグの設定をして、開発効率を上げていきたいと思います。

簡単なPythonプログラムを実行したい時など、Dockerfileやdocker-compose.ymlを使わずに、もっと簡単にPythonが実行できる環境を構築したい方はこちらの記事(VS CodeのDevContainerでDockerfileを使わずにPythonの開発環境を簡単に構築する)を参考にしてください。

プロットハブはソフトウェア開発を
支援しています。
ご興味のある方はぜひお気軽に
ご相談ください。

ソフトウェア開発の一覧へ戻る

全カテゴリ一覧

全タグ一覧

関連記事

コメント

コメントを残す

コメントが承認されると公開されます。※の入力欄は必須項目です

ホームページ制作が毎月5社限定5万5千円から!ご依頼の方はコチラ!