Closed12

vscodeのdevcontainerをリモートサーバで実行する(win10)

not75743not75743

あとは鍵認証のSSHができればOKです。
鍵ファイルには最終行に改行が必要なため、コピペする場合は気をつけてください。(転送すればOK)

not75743not75743

devcontainer立ち上げまで来たが、以下のエラーが出てコンテナ操作不能

Host server: Error: spawn docker-compose ENOENT
    at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:478:16)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
[4892 ms] Host server: (node:8756) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 1)
(Use `node --trace-warnings ...` to show where the warning was created)
not75743not75743

切り分け1

プラグインではなく、スタンドアロン版docker-composeを入れる
バージョンは2.14.2

Host server: Error: spawn docker-compose ENOENT

https://szk302.dev/posts/AWSEC2にSSM経由でVSCodeのdevcontainerを使用する/

手順

sudo curl -SL https://github.com/docker/compose/releases/download/v2.14.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod 755 /usr/local/bin/docker-compose

結果

エラーはなくなったが、相変わらず新規ターミナルが出せない

not75743not75743

切り分け2

バージョン1のdocker-composeを入れる

手順

全手順と同じ
以下から1.29.1を選択
https://github.com/docker/compose/releases?page=4

結果

起動しないどころか、エラーが出る

Command failed: /home/vscode/.vscode-server/bin/e8a3071ea4344d9d48ef8a4df2c097372b0c5161/node /home/vscode/.vscode-remote-containers/dist/dev-containers-cli-0.266.1/dist/spec-node/devContainersSpecCLI.js up --workspace-folder /home/vscode/work --workspace-mount-consistency cached --id-label devcontainer.local_folder=/home/vscode/work --log-level debug --log-format json --config /home/vscode/work/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --build-no-cache --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
not75743not75743

切り分け3

docker-composeの問題か、それ以外を確かめる
docker-composeを使わず、直接イメージを指定する

変更

devcontainer.json
    // "dockerComposeFile": "../docker-compose.yaml",
	"image": "mcr.microsoft.com/vscode/devcontainers/go:1.18",
    // "service": "app",

結果

変わらず
ログから異常は見えない気がするんだけどなあ...

not75743not75743

切り分け5

ホストをlinuxにして同じことをやる

結果

linux側だとうまくいく...

not75743not75743

解決

linux側とvscodeのバージョンを合わせたら解決した...
nanndakoreha...

バージョン一覧

  • vscode: 1.73.1(User Setup)
  • dev container: v0.266.1
  • docker: 20.10.22
  • docker-compose: v2.14.1

今回引っかかった事象まとめ

事象

最新版vscode1.74.2を使用すると以下のログで停止、ファイルとターミナルを操作できない

[14133 ms] Start: Run in container: (dd iflag=fullblock bs=8192 count=8142 2>/dev/null; dd iflag=fullblock bs=2956 count=1 2>/dev/null) | tar --no-same-owner -xz -C /vscode/vscode-server/bin/linux-x64/e8a3071ea4344d9d48ef8a4df2c097372b0c5161_1672720361719

ワークアラウンド

vscodeのバージョンを1.73.1に下げる

このスクラップは2023/01/03にクローズされました