環境
作業端末
ローカルのWindows11、Docker未インストール。
Docker host
別のLinuxPC。(物理PCにインストールしているubunstu)
docker --version
Docker version 27.3.1, build ce12230
Remote Container
docker host上で動いているdockerコンテナ。
Remote Container起動方法
作業端末からVSCode上でremote sshでdocker hostに接続、docker hostからRemote Containerでコンテナに接続
本題の追加設定方法
RemoteContanair内のVSCode拡張に関する設定はdevcontainer.json内に記載。
おもむろに中身。
インストールしたい拡張は、customizations->vscode->extensionsに書く。
拡張のパラメータ設定はcustomizations->vscode->settingsに書く。
{
"name": "ezoecpp",
"dockerComposeFile": "docker-compose.yml",
"service": "cpp1",
"workspaceFolder": "/home/ubuntu/vol",
"customizations": {
"vscode": {
"settings": {
"c-cpp-flylint.flawfinder.enable": false,
"c-cpp-flylint.lizard.enable": false,
"c-cpp-flylint.flexelint.enable": false,
"c-cpp-flylint.clang.extraArgs": [
"-std=c++23"
]
},
"extensions": [
"ms-vscode.cpptools",
"twxs.cmake",
"jbenden.c-cpp-flylint",
"ms-vscode.cpptools-extension-pack"
]
}
}
}
書いた設定は、コンテナをビルドしなおすと反映されている。設定されている値はコンテナ内で設定を開く(CTRL+,)とユーザ、ワークスペース以外にリモートコンテナ名のタブが生えているのでそこにある。
優先順位としては「コンテナの設定」>「ワークスペース」>「ユーザ」の模様。
コンテナの設定のsetting.jsonの実態がどこにあるかは未確認だけどdevcontainer.jsonに設定した値を原本と扱えばよいという思想だと思う。一応中身は、リモートコンテナ名のタブから右上アイコンの「設定(JSON)を開く」から見られる。
ワークスペース内に「.vscode/setting.json」があるのでいじったら設定優先順位真ん中で繁栄されると思うが多分devcontainer.jsonを使うべきなんだと思う。
なお、devcontainer.jsonは自分の環境だとDocker hostにリモートsshしたところにある一般的にはDocker Desktopいれてある作業端末にいると思う。