Pythonのバージョン管理をpyenv、ライブラリ管理をpoetryに頼っているのですが、現場(業務)ではコンテナ上で動かすものが多い印象です。
コンテナ上での開発であれば、VSCode Remote ContainerでPythonの補完を効かせて開発したいと思っていたのですが、なかなか手が出ない状態となっていました。
そんななか、kdnaktさんの以下記事を拝見し、まずはRemote Containerで開発環境を構築する素振りをしてみました。
本記事では、Remote Container上でPythonお試し環境を動かすため、以下を作成した際のメモを書いていきます。
参考記事
お世話になった記事を先に書いておきます。
- VSCode Remote Containerが良い - Qiita
- Visual Studio CodeのRemote DevelopmentとDockerで快適な開発環境をゲット | SIOS Tech. Lab
起動方法
python-remote-containerは、READMEに記述している通り、コマンドパレット(Macだとcommand+shift+p
)でRemote-Containers: Reopen in container
を選択すると、Remote Container(コンテナ起動→コンテナのディレクトリをVSCodeで開く)が起動します。
各種設定ファイル
.devcontainer.json
.devcontainer.json
には、
といったことを記述します。詳しくは以下を参照どうぞ。
ワークスペースフォルダの指定
Dockerfile
でソースを配置したフォルダと、同じフォルダを.devcontainer.json
に記載します。
# Dockerfile ADD . /code WORKDIR /code
// .devcontainer/devcontainer.json { "workspaceFolder": "/code", }
この設定をしておくと、Remote-Containers: Reopen in container
したときのカレントディレクトリがソースを配置したフォルダとなります。
VSCodeの拡張機能
Remote Container上でもVSCodeの拡張機能が利用可能です。
利用するには、拡張機能の...
赤枠部分をextensions
に記載します。以下設定例です。
// .devcontainer/devcontainer.json { "extensions": [ "ms-python.python", "atisteo.vscode-django", "bibhasdn.django-snippets", "bibhasdn.django-html", "editorconfig.editorconfig", "donjayamanne.githistory", "eamodio.gitlens" ], }
docker-compose.yml
今回はサーバー等を起動しないため、コンテナ起動後に即終了してしまいます。(Remote Containerもできない状態)
コンテナを起動し続けるため、tty
を有効にします。
# docker-compose.yml version: '3' services: python_remote: tty: true
おわり
以上になります。
自分のためのメモですが、参考になれば幸いです。