Pythonのバージョン管理をpyenv、ライブラリ管理をpoetryに頼っているのですが、現場(業務)ではコンテナ上で動かすものが多い印象です。
コンテナ上での開発であれば、VSCode Remote ContainerでPythonの補完を効かせて開発したいと思っていたのですが、なかなか手が出ない状態となっていました。
そんななか、kdnaktさんの以下記事を拝見し、まずはRemote Containerで開発環境を構築する素振りをしてみました。
kdnakt.hatenablog.com
本記事では、Remote Container上でPythonお試し環境を動かすため、以下を作成した際のメモを書いていきます。
参考記事
お世話になった記事を先に書いておきます。
起動方法
python-remote-containerは、READMEに記述している通り、コマンドパレット(Macだとcommand+shift+p
)でRemote-Containers: Reopen in container
を選択すると、Remote Container(コンテナ起動→コンテナのディレクトリをVSCodeで開く)が起動します。
各種設定ファイル
.devcontainer.json
.devcontainer.json
には、
- Remote Containerを起動するまでの設定
- Remote Container上で有効化するVSCodeの拡張機能
- etc...
といったことを記述します。詳しくは以下を参照どうぞ。
Dockerfile
でソースを配置したフォルダと、同じフォルダを.devcontainer.json
に記載します。
# Dockerfile
ADD . /code
WORKDIR /code
// .devcontainer/devcontainer.json
{
"workspaceFolder": "/code",
}
この設定をしておくと、Remote-Containers: Reopen in container
したときのカレントディレクトリがソースを配置したフォルダとなります。
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
を有効にします。
version: '3'
services:
python_remote:
tty: true
おわり
以上になります。
自分のためのメモですが、参考になれば幸いです。