devcontainers / spec

Development Containers: Use a container as a full-featured development environment.
https://containers.dev
Creative Commons Attribution 4.0 International
3.43k stars 213 forks source link

Dev Containers no longer functional. Fully Broken with Upgrade to 4.30 #468

Open david-engelmann opened 4 months ago

david-engelmann commented 4 months ago

A fully functioning devcontainer setup that has worked for an extremely long time, is totally nonfunctional.

I've done an exhaustive amount of things to try and resolve the issue. tested on over 10 docker desktop version, uninstalling vscode multiple times, unregistered docker-desktop and docker-desktop-data. created new folders and move the code in there, fresh git clones, modifying the folder structure of the docker assets, everything. Nevertheless, the issue persist makes the devcontainer workflow completely unusable. The docker setup has no problem building with the docker compose -f .devcontainer/docker-compose.yml up -d --build command. wsl/ubuntu is running fine and has no networking problems. The problem started occuring after Docker Desktop was updated to 4.30.

[2024-05-24T16:42:10.556Z] 
[+] Building 0.2s (5/17)                                         docker:default
 => [project_id internal] load .dockerignore             0.0s
 => => transferring context: 378B                                          0.0s
 => [project_id internal] load build definition from Do  0.0s
 => => transferring dockerfile: 1.36kB                                     0.0s
 => [project_id internal] load metadata for docker.io/t  0.0s
 => [project_id dev_container_auto_added_stage_label  1  0.0s
 => CANCELED [project_id internal] load build context    0.2s
 => => transferring context: 54.82MB                                       0.2s
failed to solve: Canceled: context canceled
[2024-05-24T16:42:10.679Z] Stop (809 ms): Run: docker-compose --project-name project_id -f c:\Users\human\Documents\vscode_projects\project_id\docker-compose.yml -f c:\Users\human\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-containers\data\docker-compose\docker-compose.devcontainer.build-1716568929869.yml build
[2024-05-24T16:42:10.683Z] Error: Command failed: docker-compose --project-name project_id -f c:\Users\human\Documents\vscode_projects\project_id\docker-compose.yml -f c:\Users\human\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-containers\data\docker-compose\docker-compose.devcontainer.build-1716568929869.yml build
[2024-05-24T16:42:10.684Z]     at Km (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:429:525)
[2024-05-24T16:42:10.684Z]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[2024-05-24T16:42:10.684Z]     at async QtA (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:429:2497)
[2024-05-24T16:42:10.684Z]     at async utA (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:409:3486)
[2024-05-24T16:42:10.684Z]     at async KtA (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:481:3865)
[2024-05-24T16:42:10.684Z]     at async $C (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:481:4807)
[2024-05-24T16:42:10.684Z]     at async hrA (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:661:13255)
[2024-05-24T16:42:10.684Z]     at async lrA (c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js:661:12996)
[2024-05-24T16:42:10.695Z] Stop (2423 ms): Run: C:\Users\human\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js up --user-data-folder c:\Users\human\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-containers\data --container-session-data-folder /tmp/devcontainers-ce32b5f9-0283-4117-8523-9b2aab228e471716568926768 --workspace-folder c:\Users\human\Documents\vscode_projects\project_id --workspace-mount-consistency cached --id-label devcontainer.local_folder=c:\Users\human\Documents\vscode_projects\project_id --id-label devcontainer.config_file=c:\Users\human\Documents\vscode_projects\project_id\.devcontainer\devcontainer.json --log-level debug --log-format json --config c:\Users\human\Documents\vscode_projects\project_id\.devcontainer\devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --mount type=bind,source=\\wsl.localhost\Ubuntu\mnt\wslg\runtime-dir\wayland-0,target=/tmp/vscode-wayland-f6da7b17-82e1-411f-9c9d-c7f118100343.sock --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root
[2024-05-24T16:42:10.695Z] Exit code 1
[2024-05-24T16:42:10.697Z] Command failed: C:\Users\human\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\human\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\spec-node\devContainersSpecCLI.js up --user-data-folder c:\Users\human\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote.remote-containers\data --container-session-data-folder /tmp/devcontainers-ce32b5f9-0283-4117-8523-9b2aab228e471716568926768 --workspace-folder c:\Users\human\Documents\vscode_projects\project_id --workspace-mount-consistency cached --id-label devcontainer.local_folder=c:\Users\human\Documents\vscode_projects\project_id --id-label devcontainer.config_file=c:\Users\human\Documents\vscode_projects\project_id\.devcontainer\devcontainer.json --log-level debug --log-format json --config c:\Users\human\Documents\vscode_projects\project_id\.devcontainer\devcontainer.json --default-user-env-probe loginInteractiveShell --remove-existing-container --mount type=volume,source=vscode,target=/vscode,external=true --mount type=bind,source=\\wsl.localhost\Ubuntu\mnt\wslg\runtime-dir\wayland-0,target=/tmp/vscode-wayland-f6da7b17-82e1-411f-9c9d-c7f118100343.sock --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root
[2024-05-24T16:42:10.697Z] Exit code 1
david-engelmann commented 4 months ago

other errors observed while trying to resolve

failed to solve: archive/tar: unknown file mode ?rwxr-xr-x 

additional info in this issue - https://github.com/docker/for-win/issues/14083

and a relevant comment - https://github.com/LIAAD/physio/issues/2#issuecomment-2119341390

samruddhikhandale commented 4 months ago

@chrmarti Wondering if you are familiar with any issues as mentioned by the user?

chrmarti commented 4 months ago

@david-engelmann Could you share the full log, your devcontainer.json, docker-compose.yml and Dockerfile if any? Is this with a workspace folder in WSL?

Oksamies commented 4 months ago

This definitely is an issue with 4.30. I upgraded to it today and got this issue.

Speculation: Docker (in general all the of the software used) somehow bricks either the cached file "thing" or the permissions of the file on the disk.

It seems to be semi random, since I was able to pinpoint to certain files being the ones that caused this issue/error. Deleting the exact files and restoring them with git solved the issue. Hence I believe Docker manages to brick the files permissions. (Idk, I'm not an expert on this)

Anyways; this should be fixed before more people face it. I rarely upgrade Docker for Windows, for this exact reason. Everytime I do upgrade it; at least half of my day is taken up by a weird docker problem.

ontoneio commented 3 months ago

I having a now having similar issue. I cannot seem to open up my devcontainer anymore and the only major change was the update to 4.30.0. I have updated to docker-desktop v 4.30.1and same issue. I have aninitializeCommandthat prompts for some user input and now theConfiguring` terminal as it seems to be called, doesn't even pop up in the container rebuild phase and therefore hangs the startup. I can see in the devcontainer log that the WSL side is prompting for the input, but have no way of accessing the terminal.

As an update I have cleared all containers, images, volumes, restarted my machine, rolled back to Docker-desktop 4.29.0, and deleted my local repository and re-cloned it. Still the same issues. If I completely remove my initializeCommand script from the config file, it seems to build and work, but It am not understanding how this is all linked I suppose?