月別アーカイブ: 2024年11月

Remote ContainerのVSCode拡張に設定追加

環境

作業端末

ローカルの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に書く。

2024/11/23 C_Cpp.default.cppStandard/C_Cpp.default.cStandard追記

{
    "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"
                ],
                "C_Cpp.default.cppStandard": "c++23",
                "C_Cpp.default.cStandard": "c23"
            },
            "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いれてある作業端末にいると思う。