microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.61k stars 275 forks source link

Trying "Dev containers: Try a dev container sample" fails with error "ln: failed to create symbolic link '...': No such file or directory" #8023

Closed nikelborm closed 1 year ago

nikelborm commented 1 year ago

Issue doesn't depend on any choice here Screenshot from 2023-02-10 15-47-34

Part of logs with error:

[1527 ms] Start: Run in container: test -e "/home/nikel/" || (mkdir -p "$(dirname "/home/nikel/")" && ln -s ~ "/home/nikel/")
[1529 ms] 
[1529 ms] ln: failed to create symbolic link '/home/nikel/': No such file or directory
[1530 ms] Exit code 1
[1532 ms] Command in container failed: test -e "/home/nikel/" || (mkdir -p "$(dirname "/home/nikel/")" && ln -s ~ "/home/nikel/")
[1532 ms] ln: failed to create symbolic link '/home/nikel/': No such file or directory
[1532 ms] Exit code 1

Looks like this error happens because dirname "/home/nikel/" returns just /home. And then mkdir tries to create /home. The solution here I think is to replace mkdir -p "$(dirname "/home/nikel/")" with mkdir -p "/home/nikel/" because mkdir -p will also create intermediate folders as it is intended.

[549 ms] Dev Containers 0.275.1 in VS Code 1.75.1 (441438abd1ac652551dbe4d408dfcec8a499b8bf).
[548 ms] Start: Resolving Remote
[555 ms] Start: Check Docker is running
[555 ms] Start: Run: docker version --format {{.Server.APIVersion}}
[574 ms] Server API version: 1.41
[575 ms] Start: Run: docker volume ls -q
[592 ms] Start: Run: docker build -f /tmp/vsch-nikel/bootstrap-image/0.275.1/bootstrap.Dockerfile -t vsc-volume-bootstrap /tmp/vsch-nikel/bootstrap-image/0.275.1
Sending build context to Docker daemon  2.167MB
Step 1/5 : FROM mcr.microsoft.com/devcontainers/base:0-alpine-3.16
 ---> 5e9c5ad50601
Step 2/5 : RUN echo "@old https://dl-cdn.alpinelinux.org/alpine/v3.15/main" >> /etc/apk/repositories
 ---> Using cache
 ---> f454f0306d7d
Step 3/5 : RUN apk add --no-cache       nodejs  python3         npm     make   g++      docker-cli      docker-cli-buildx       docker-cli-compose      openssh-client-default@old  ;
 ---> Using cache
 ---> be4785510fe8
Step 4/5 : RUN cd && npm i node-pty
 ---> Using cache
 ---> 68cfffc5e346
Step 5/5 : COPY .vscode-remote-containers /root/.vscode-remote-containers
 ---> Using cache
 ---> a157abaf7266
Successfully built a157abaf7266
Successfully tagged vsc-volume-bootstrap:latest
[893 ms] Cloning Github repository: Microsoft/vscode-remote-try-python into /workspaces/vscode-remote-try-python

[893 ms] Start: Run: docker run -d --mount type=volume,src=vscode-remote-try-python-41cc2ee6f8cb6b0cee4c350f9a78ef53,dst=/workspaces -v /var/run/docker.sock:/var/run/docker.sock vsc-volume-bootstrap sleep infinity
[1193 ms] Start: Run in container: /bin/sh
[1199 ms] Start: Launching Dev Containers helper.
[1199 ms] ssh-agent: SSH_AUTH_SOCK in container (/tmp/vscode-ssh-auth-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.sock) forwarded to local host (/run/user/1000/keyring/ssh).
[1200 ms] Start: Run in container: test -e /tmp/.X11-unix/X0
[1324 ms] 
[1324 ms] 
[1324 ms] Exit code 1
[1325 ms] Start: Run in container: mkdir -p '/tmp/.X11-unix'
[1326 ms] 
[1326 ms] 
[1326 ms] X11 forwarding: DISPLAY in container (:0) forwarded to local host (:0).
[1327 ms] Start: Run: gpgconf --list-dir agent-extra-socket
[1332 ms] /run/user/1000/gnupg/S.gpg-agent.extra
[1332 ms] 
[1332 ms] Start: Run in container: gpgconf --list-dir agent-socket
[1333 ms] /root/.gnupg/S.gpg-agent
[1333 ms] 
[1333 ms] Start: Run in container: gpgconf --list-dir homedir
[1334 ms] /root/.gnupg
[1334 ms] 
[1334 ms] Start: Run in container: ls '/root/.gnupg/private-keys-v1.d' 2>/dev/null
[1335 ms] 
[1336 ms] 
[1336 ms] Exit code 2
[1336 ms] Start: Run in container: mkdir -p -m 700 '/root/.gnupg'
[1337 ms] 
[1337 ms] 
[1337 ms] Start: Run in container: command -v docker >/dev/null 2>&1
[1337 ms] Start: Run: gpgconf --list-dir homedir
[1340 ms] 
[1340 ms] 
[1340 ms] Start: Run in container: /bin/sh
[1343 ms] Start: Run in container: echo ~
[1343 ms] /home/nikel//.gnupg
[1343 ms] 
[1344 ms] Start: Run in container: gpgconf --list-dir homedir
[1344 ms] /root/.gnupg
[1345 ms] 
[1345 ms] Start: Run: gpg-connect-agent updatestartuptty /bye
[1447 ms] /root
[1448 ms] 
[1448 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.js' >/tmp/vscode-remote-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.js
[1450 ms] 
[1450 ms] 
[1451 ms] Start: Run in container: mkdir -p /usr/local/bin && cat <<'EOF-/usr/local/bin/docker-credential-dev-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc' >/usr/local/bin/docker-credential-dev-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc
[1453 ms] 
[1453 ms] 
[1453 ms] Start: Run in container: chmod +x /usr/local/bin/docker-credential-dev-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc
[1454 ms] 
[1454 ms] 
[1455 ms] Start: Run in container: cat ~/.docker/config.json || echo "{
[1456 ms] {
}
[1456 ms] cat: /root/.docker/config.json: No such file or directory
[1456 ms] Start: Run in container: mkdir -p ~/.docker && cat <<'EOF-/usr/local/bin/docker-credential-dev-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc' >~/.docker/config.json
[1458 ms] 
[1458 ms] 
[1458 ms] Start: Run in container: cat <<'EOF-/tmp/vscode-remote-containers-server-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.js' >/tmp/vscode-remote-containers-server-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.js_1676029922685
[1461 ms] 
[1461 ms] 
[1462 ms] Start: Run in container: # Test for /root/.gitconfig and git
[1463 ms] 
[1463 ms] 
[1463 ms] Start: Run in container: # Copy /home/nikel/.gitconfig to /root/.gitconfig
[1465 ms] 
[1465 ms] 
[1466 ms] Start: Run in container: command -v git >/dev/null 2>&1 && git config --global --replace-all credential.helper '!f() { node /tmp/vscode-remote-containers-497bd6f11c7abbbafbd6070bd4ea0954e55027dc.js git-credential-helper $*; }; f' || true
[1467 ms] 
[1467 ms] 
[1467 ms] Start: Run in container: # Test for /root/.ssh/known_hosts and ssh
[1468 ms] 
[1469 ms] 
[1469 ms] Start: Run in container: # Copy /home/nikel/.ssh/known_hosts to /root/.ssh/known_hosts
[1470 ms] 
[1470 ms] 
[1523 ms] Start: Run in container: cat /workspaces/vscode-remote-try-python/.devcontainer/devcontainer.json 2>/dev/null
[1524 ms] Start: Run in container: cat /workspaces/vscode-remote-try-python/.devcontainer/devcontainer.json 2>/dev/null
[1527 ms] Start: Run in container: test -e "/home/nikel/" || (mkdir -p "$(dirname "/home/nikel/")" && ln -s ~ "/home/nikel/")
[1529 ms] 
[1529 ms] ln: failed to create symbolic link '/home/nikel/': No such file or directory
[1530 ms] Exit code 1
[1532 ms] Command in container failed: test -e "/home/nikel/" || (mkdir -p "$(dirname "/home/nikel/")" && ln -s ~ "/home/nikel/")
[1532 ms] ln: failed to create symbolic link '/home/nikel/': No such file or directory
[1532 ms] Exit code 1

Steps to Reproduce:

  1. install arch, docker, docker buildx
  2. install latest vs code from aur
  3. install dev containers extension
  4. run command (ctrl + shift + P) in vs code: Dev containers: Try a dev container sample...

Does this issue occur when you try this locally?: Yes Does this issue occur when you try this locally and all extensions are disabled?: No (because dev containers is an extension itself)

chrmarti commented 1 year ago

I think ln fails because it tries to create the symbolic link inside /home/nikel/ instead of making /home/nikel the symbolic link. Does it work when you remove the trailing slash from your local HOME environment variable? Which shell are you using locally?

nikelborm commented 1 year ago

I am using bash on arch. I didnt change that variable myself. Its just the way it is

echo $HOME
/home/nikel/
chrmarti commented 1 year ago

Could you try removing the trailing slash and retry? See: https://serverfault.com/a/876318

github-actions[bot] commented 1 year ago

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.

Happy Coding!

nikelborm commented 1 year ago

@chrmarti I tried your solution and it helped with this problem, but another problem came immediately after. I'll open new issue for the new problem