初めまして、fsd-shoyaです。
初投稿になりますので間違いなどありましたらお知らせ下さい。
今回は、devcontainerで詰まってしまった原因と解決策について投稿させて頂きます。
はじまり
いつも通りVSCodeを起動して、作業を開始しようとしたら、devcontainerが開けず、
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at n6 (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:224:1268)
at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
at async t6 (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:220:733)
at async vm (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:194:9112)
at async Wbe (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:288:7491)
at async DK (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:288:6424)
at async BO (/Users/fsd-shoya/.vscode/extensions/ms-vscode-remote.remote-containers-0.295.0/dist/extension/extension.js:279:4972)
のようなエラーが生じ、解決しようと藻掻いていると、数時間が経ってしまいました。
実行環境はwsl+VSCode+Docker+devcontainerです。
原因
エラー文の最初の行を見ると、JSON入力のエラーであると分かります。
どの入力でエラーが生じたのかを確認するために、直前のログを確認すると、
Start: Run in container: cat '/home/node/.vscode-server/bin/695af097c7bd098fbf017ce3ac85e09bbc5dda06/product.json'
となっているので、
/home/node/.vscode-server/bin/695af097c7bd098fbf017ce3ac85e09bbc5dda06/product.json
の入力でエラーが生じたようです。
解決策
エラーが生じたJSONファイルのあるディレクトリを削除しました。
//コンテナー内で作業する
docker run -it --rm -v vscode:/vscode ubuntu
//対象のディレクトリがあるか確認
ls -l /vscode/vscode-server/bin/linux-x64/695af097c7bd098fbf017ce3ac85e09bbc5dda06/
//対象のディレクトリを削除
rm -rf /vscode/vscode-server/bin/linux-x64/695af097c7bd098fbf017ce3ac85e09bbc5dda06/
/vscode/vscode-server/bin/linux-x64/695af097c7bd098fbf017ce3ac85e09bbc5dda06/
太字の部分は、エラーが生じたファイルパスを参照して下さい。
学んだこと
- wsl上で直接コンテナーの中身を触ることは出来ない。
- 赤字のエラー文のみでなく、どこでエラーが起こっているかを特定するべき。
以上になります。
どなたかの参考になれば幸いです。
参考資料