VSCodeのDevcontainerを使って開発している時に、VSCodeの拡張機能をメンバー間で揃えたい場合は通常.devcontainer.json
のextensionsに追記すれば自動でインストールしてくれるはずなのですが、なぜかできないので、一旦暫定対応としてスクリプト書いてインストールできるようにしました。
設定方法
コンテナ初回起動直後に拡張機能をインストールが実行されるように、postCreateCommand
に拡張機能インストール用のシェルスクリプトを実行するように追記します。
{ 〜〜〜〜〜〜〜省略〜〜〜〜〜〜〜〜〜〜〜〜〜〜 "customizations": { "vscode": { "extensions": [ "vue.volar", "esbenp.prettier-vscode", "stylelint.vscode-stylelint", "formulahendry.auto-close-tag", "formulahendry.auto-rename-tag", "deque-systems.vscode-axe-linter", "dbaeumer.vscode-eslint", "ms-playwright.playwright" ] } }, "postCreateCommand": "sh vscode_extensions_install.sh" }
sleep 5 echo "Manual install of code extensions" export PATH=`echo ~/.vscode-server/bin/*/bin`:$PATH export VSCODE_IPC_HOOK_CLI="$(ls /tmp/vscode-ipc-*.sock | head -n 1)" code_server_bin=$(ps -aux | grep "bin/code-server" | awk '{print $12}' | head -n 1) code_bin=$(dirname "$code_server_bin")/remote-cli/code extensions=`cat .devcontainer/devcontainer.json | sed 's/^ *\/\/.*//' | jq -r .customizations.vscode.extensions[]` for extension in $extensions do $code_bin --install-extension $extension done
最後に
コンテナ初回起動時に拡張機能のインストール自体は実行してそうだが、インストールはされていない。。
[5206 ms] [12:21:50] Installing extensions... [5322 ms] [12:21:50] Completed initializing default profile extensions in extensions installation folder. file:///home/node/.vscode-server/extensions
時間見つけてシェル実行しなくても正常に自動でインストールできるように引き続き調査してみます。