当サイトは、アフィリエイト広告を利用しています
Pythonを使って開発をすることになったため
Dockerを使ったPythonのコンテナ開発環境を
VSCodeで簡単に作る方法をメモしておく。
Pythonでプログラミングを開始する時
のような多くのPythonディストリビューションがあり
用途によって使い分ける必要があるが
今回は公式のpython.orgを使うことにする
Anacondaを使った環境構築については下記でまとめています
またPythonのWEBフレームワーク(django,fastapi)を使う場合の方法は下記記事で
紹介しています
今回はwindowsで実施する
下記がインストール済みであること
WindowsでDockerを扱うために
「Docker for Windows」
をインストールしておく
WindowsにDocker for Windowsをインストールする方法は
下記で紹介しています
VSCodeからdockerコンテナ開発環境を作成するため
VScode本体と下記の拡張機能をインストールしておく
※正確にはRemote Developmentに含まれている
「DevContainers」を使う
プロジェクト構成は以下のようにする
.|-- .devcontainer| `-- devcontainer.json|-- Dockerfile|-- main.py|-- docker-compose.yml`-- requirements.txt
各ファイルの詳細について後で説明する
VScodeの拡張機能DevContainersを使って
VSCodeからdockerコンテナ開発環境を作成するための
各ファイルを解説する
下記の各種ファイルを設定する
コンテナ管理の設定ファイル
version: "3"services:python3:container_name: "container_python3"# Dockerfileをビルドbuild:context: .dockerfile: Dockerfiletty: true# プロジェクトをバインドマウントvolumes:- .:/workspaceports:- "1000:8888"
contextで指定したパス配下のdockerfileを
buildする
「ホスト側の相対Path:コンテナの絶対Path」で設定し
ホストとコンテナのvolumeをバインドさせる
ここではプロジェクトとworkspaceをバインドさせる
ボリュームにバインドさせることデータは永続化され
仮にコンテナを誤って消してもデータは消えない
Dockerコンテナイメージを構築するためのテキストファイル
これを元にimageが作られる
# イメージFROM python:3# パッケージを最新化RUN python -m pip install --upgrade pip# workspaceディレクトリを作成WORKDIR /workspace# workspaceにrequirements.txtをコピーCOPY requirements.txt /workspace/# requirements.txtのパッケージをインストールRUN pip install -r requirements.txt# upyter NotebookのLabインターフェースを有効にするための設定ENV JUPYTER_ENABLE_LAB = yes
jupyterlab
JupyterNotebookを使用できるようにする
VScodeのコンテナ開発の設定ファイル
を設定する
{// コンテナ名"name": "container_python3","dockerComposeFile": "../docker-compose.yml","service": "python3",// コンテナ内のプロジェクトのルートフォルダを指定"workspaceFolder": "/workspace","shutdownAction": "stopCompose","extensions": ["ms-python.python","ms-toolsai.jupyter"]}
devcontainerの詳しい使い方については下記記事で
まとめています
各設定ファイルの準備ができたら
VSCodeからDockerコンテナを作成する
実行前に「Docker for Windows」を起動させておく
※実行してないとVSCodeから起動時に注意されます。。。
エラーなく実行できればコンテナ開発環境。
試しにmain.pyを実行してみる
print("hello python")
実行前にPythonのversionを確認する。
※インタープリンター設定時に使う
Dockerfileでマイナーバージョン以下を指定をしないと
コンテナimageをbuildした時点での最新のpython stable versionが
installされているため
python --versionPython 3.11.5
Pythonを実行するためのインタープリンターを選択する
確認したPythonのversion選択する
またはpythonコマンドで実行することもできる
python main.pyhello python
JupyterNotebookを実行するための
パッケージや拡張機能もインストールしてあるので
コンテナで動作することを確認する
Dockerコンテナを使ったPython実行環境の構築を
VScodeを使ってしてみた
Dockerコンテナを使うと面倒なインストールは
ファイルを書くだけで簡単にでき
また、いらなくなったらコンテナを消せば
PC本体の環境を汚れないので、便利だと思う。
Pythonを使った機械学習入門については下記記事でまとめています