Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Codespces では workspaceFolder が無視されてしまうのでワークスペースが正しく構成されない #3

Open
hankei6km opened this issue Oct 13, 2022 · 0 comments

Comments

@hankei6km
Copy link
Contributor

Zenn のコメントに書いた状況の詳細です。

Codespace を作成すると DevContainer 内では以下の 2 ディレクトリーがマウントされています。

root@223091a45c89:/# ls -dlF workspace workspaces/zenn-content-boilerplate
drwxrwxrwx+ 12 root root 4096 Oct 13 14:26 workspace/
drwxrwxrwx+ 12 root root 4096 Oct 13 14:26 workspaces/zenn-content-boilerplate/

そして、Codespace は /workspaces/zenn-content-boilerplate の方を VSCode で扱ってしまいます。

root@223091a45c89:/# echo $CODESPACE_VSCODE_FOLDER/
/workspaces/zenn-content-boilerplate

これは、現状では Codespace が devcontainer.jsonworkplaceFolder を無視してしまうことが原因と考えられます。

この状態であっても、/workspaces/zenn-content-boilerplate/workspace は同じソースをマウントしているので内容はほぼ共有されています。しかし、/workspace/node_modules は Docker Compose 内でボリュームをマウントしているので共有されません。

    volumes:
      - .:/workspace:delegated
      - node_modules:/workspace/node_modules

よって、VSCode 側で見えているワークスペースは node_modules が空の状態になってしまい、NPM スクリプトなどがエラーとなってしまいます。

root@3c7d8989afb7:/workspaces/zenn-content-boilerplate# yarn run preview
yarn run v1.22.19
$ zenn preview
/bin/sh: 1: zenn: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
root@3c7d8989afb7:/workspaces/zenn-content-boilerplate# 

検索してみると、対応として ln -s でシンボリックリンクを貼ってしまうというのはみかけたのですが、/workspaces/zenn-content-boilerplate/node_modules が存在しているので(Resource Busy で削除できない状態です)、うまくいきませんでした。

いま手元に VSCode で DevContainer(ローカルの Docker)を動かす環境がないので、申し訳ないのですが確認できたのはとりあえずここまです、

よろしくお願いいたします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant