VS Code Remote Containerで、自分用の拡張機能をインストールしたい

こんにちは。永和システムマネジメント FDPメンバの坂部です。

WSL2 + Docker + VS Code Remote Developmentでdotfilesの設定が反映されない〜と唸っていたところ、それとは無関係ですが、便利な設定を見つけました。既に知っている人も多いと思いますが、わたしはつい先ほど知りました…

わたしたちのチームは、VS Code Remote Developmentを介して、ローカルコンテナ上で開発しています。もちろん、Dockerfileやdevcontainer.jsonもチームで共有しています。コンテナ内で使うVS Code拡張機能についてもdevcontainer.jsonで管理して、共有しているのですが、それ以外の拡張機能を使いたくなるときってありますよね?

.devcontainer/devcontainer.json

{
   ...,
  "extensions": [
    "esbenp.prettier-vscode",
    "ms-python.python",
    "ms-toolsai.jupyter",
    "bungcip.better-toml"
  ]
}

わたしは、GitLensGit GraphGitHub Pull Requests and IssuesCode Spell Checker あたりを愛用しているのですが、今までこれらはコンテナビルド後に手動でインストールしていました。

これって実はVS Codeの設定で指定できるようです。今まで知りませんでした…

Userのsettings.json

{
  ...,
  "remote.containers.defaultExtensions": [
    "github.vscode-pull-request-github",
    "eamodio.gitlens",
    "mhutchie.git-graph",
    "streetsidesoftware.code-spell-checker"
  ]
}

f:id:sakabehiroki:20211228124158p:plain
設定画面で指定するならこんな感じ

これで、コンテナビルド毎に手動でインストールする手間が省けました 🎉

参考