【WSL2, Docker】Pythonの開発環境を構築する【VSCode】
Pythonの開発環境をWSL2とDockerで構築します。
Dockerイメージの選定
本番環境で使用しているエックスサーバーに合わせて、今回はPython3.6.8を使用します。
ビルドコンテキスト
home/dev/python/
|-- .devcontainer/
| |-- python/
| | `-- Dockerfile
| |-- .env
| |-- devcontainer.json
| `-- docker-compose.yml
`-- src/
.devcontainer/
python/Dockerfile
.devcontainer/python/Dockerfileの内容は以下となります。
sudo、sqlite3、pipでjupyter-labなどを追加していますが、Pythonのバージョン(Dockerイメージ)も含め、必要に応じて書き換えてください。
.env
Dockerfile,docker-compose.ymlへ渡す定数を定義します。
CONTAINER_NAME=python
PORT_WEB=8088
USER_ID=1000
GROUP_ID=1000
USER_NAME=dev
USER_PASS=pass
docker-compose.yml
version: '3'
services:
web:
build:
context: ./python
args:
USER_ID: ${USER_ID}
GROUP_ID: ${GROUP_ID}
USER_NAME: ${USER_NAME}
USER_PASS: ${USER_PASS}
image: python3
container_name: ${CONTAINER_NAME}
command:
jupyter-lab --ip=0.0.0.0 --allow-root --NotebookApp.token='' --no-browser
ports:
- ${PORT_WEB}:8888
volumes:
- ../src:/home/${USER_NAME}/src
working_dir: /home/${USER_NAME}/src
tty: true
stdin_open: true
devcontainer.json
{
"name": "Python",
"dockerComposeFile": "./docker-compose.yml",
"service": "web",
"workspaceFolder": "/home/dev",
"overrideCommand": false,
"extensions": [
"ms-ceintl.vscode-language-pack-ja",
"ms-python.python",
"ms-python.vscode-pylance",
"qwtel.sqlite-viewer"
],
"settings": {
"python.analysis.typeCheckingMode": "basic",
},
"postCreateCommand": ""
}