はじめに

VSCode の リモートコンテナ や dev container を使って開発したいときに、遭遇したエラーの対処法を少し

問題 疑問

  1. リモートSSH機能で VSCode 開くと、terminal でHungする
  2. リモートコンテナにアタッチしたり、dev container を開くと、リモートを開いています から進まない

どちらも、M1 Mac上で OrbStack 上で立ち上げた ArchLinux に接続しているときに発生した

まとめ 結果 解決方法

  1. VSCode から開く Terminal では Tmux は起動しない

    • 以下設定で、VSCode から起動されているかどうかを判定し、Tmux を起動するかどうかを切り替える

      is_vscode() { [[ -n $VSCODE_INJECTION ]]; }
  2. 拡張機能のシグニチャ検証を無効化、もしくは、ローカルから拡張機能をインストールする設定を有効にする

    • dev container の場合は、拡張機能のシグニチャ検証を無効化

      {
          // Configure tool-specific properties.
          "customizations": {
            "vscode": {
              "settings": {
                // Workaround for x86_64 containers on aarch64(like M1 Mac) hosts
                // see: https://zenn.dev/tbistr/articles/x86-devcontainer-on-aarch64
                "extensions.verifySignature": false,
              },
            },
          },
      }
    • コンテナ内の vscode server 設定を追加(.data/back/.vscode-server はホスト側からマウントしている前提)

      echo '{ "extensions.verifySignature": false }' >> .data/back/.vscode-server/data/Machine/settings.json
    • ローカルから拡張機能をインストールする設定を有効化 こちらは有効かどうかあやしい(無効化後、再現確認時に発生せず)

      {
        "remote.downloadExtensionsLocally": true // For extention install hung if attach container on orb on m1 mac
      }

Refs