python開発環境構築(VSCode - Rancher Desktop - Pipenv)for Windows


はじめに


普段業務でRancherDocker+DevContainer+Pipenvを使った開発環境で開発を進めているのですが、環境構築手順が何もない状態で自分一人で全部できるのか中々自信がなく、今まで出来ていませんでした。。。
自信をつけるためにも今回からまとめていこうと思います!

事前準備


  • RancherDesktop

  • VSCode

    • 業務で使用しているのもそうですが、VSCodeの方がUI的にわかりやすいのと、拡張機能が充実してるので選択

  • WSL

    • Windows上でLinuxOSをエミュレートする機能。(Macだと不要なのにWindowsは少し面倒ですね)

    • ※Macと違いWindowsはWSL経由でDocker操作を行うためメモリやプロセッサの割り当て設定はRancherDesktopのPreferencesから行うことができないため、以下を参考に設定

手順


以下の階層でそれぞれファイルを作成する

Dockerfile

FROM python:3.12

ENV PIPENV_VENV_IN_PROJECT=1

RUN pip install --upgrade pip && \
    pip install pipenv

RUN pipenv install

devcontainer.json

{
	"name": "docker_pipenv",
	"dockerFile": "Dockerfile",
	"customizations": {
		"vscode":{
			"settings": {
				"python.locator": "js",
				"python.defaultInterpreterPath": ".venv/bin/python",
				"terminal.integrated.shell.linux": "/bin/bash",
                "python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
                "python.formatting.blackPath": "/usr/local/py-utils/bin/black",
                "python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf"
			},
			"extensions": [
				"ms-python.python",
				"ms-python.vscode-pylance",
				"mhutchie.git-graph"
			]
		}
	},
	"postStartCommand": "bash ./.devcontainer/postStartCommand.sh"
}

postStartCommand.sh

#!/bin/bash

pip install pipenv
pipenv sync
pipenv sync -d

以下の拡張機能を入れる

Ctrl + Shift + P で コンテナでリビルドを選択したら完了。

苦労したところ


こちらで報告されている事象になり、「ターミナルを再アクティブにしています。」が終わらない状態になった。

devcontainer.jsonのsettingで、以下を追加することで解決

"python.locator": "js",

おわりに


Dockerfileの中身など無駄な処理が入っているかもしれません、、
ただ、ひとまず自分一人で開発環境を作ることができたので、これを実施する前よりは自信がついたと思う。


いいなと思ったら応援しよう!