ざきの学習帳(旧 zackey推し )

日々の学びを書きます

VSCode Remote Container でPythonお試し環境を作った時のメモ

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で開く)が起動します。

f:id:kic-yuuki:20200623212817p:plain

各種設定ファイル

.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したときのカレントディレクトリがソースを配置したフォルダとなります。

VSCode拡張機能

Remote Container上でもVSCode拡張機能が利用可能です。

利用するには、拡張機能の...

f:id:kic-yuuki:20200623215511p:plain

赤枠部分を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

おわり

以上になります。

自分のためのメモですが、参考になれば幸いです。