sail: Unable to use Sail with GitHub Codespaces
- Sail Version: 1.19.0
- Laravel Version: 9.50.2
- PHP Version: 8.2
- Host operating system: Linux of some sort
Description:
My repo: https://github.com/garrettw/laravel-skeleton
Not sure if this is the right place to report this bug, but I found someone else that had this error yesterday and they said changing their Dockerfile container config fixed the problem – so I thought I’d start here and see if anyone knew what part of this setup might be incompatible with Codespaces.
I am trying to create a new codespace based on the devcontainer file that Laravel Sail generated – I haven’t modified the docker-compose file. When I create the codespace, the build fails. Below is the creation log.
I have a hunch as to what might be going on… maybe Codespaces doesn’t support multi-container compose files and just wants to throw everything in a single container. Haven’t tested this theory yet.
Don’t think that’s it… found evidence around the web of people being able to run multi-container setups.
Also I’m seeing something about a docker-in-docker setup… is that the only way to get this working?
=================================================================================
2023-02-15 00:30:46.246Z: Configuration starting...
2023-02-15 00:30:46.252Z: Cloning...
=================================================================================
2023-02-15 00:30:46.274Z: Creating container...
2023-02-15 00:30:46.276Z: $ devcontainer up --id-label Type=codespaces --workspace-folder /var/lib/docker/codespacemount/workspace/laravel-skeleton --mount type=bind,source=/.codespaces/agent/mount/cache,target=/vscode --user-data-folder /var/lib/docker/codespacemount/.persistedshare --container-data-folder .vscode-remote/data/Machine --container-system-data-folder /var/vscode-remote --log-level trace --log-format json --update-remote-user-uid-default never --mount-workspace-git-root false --skip-non-blocking-commands --skip-post-create --remove-existing-container --config "/var/lib/docker/codespacemount/workspace/laravel-skeleton/.devcontainer/devcontainer.json" --override-config /root/.codespaces/shared/merged_devcontainer.json --default-user-env-probe loginInteractiveShell --container-session-data-folder /workspaces/.codespaces/.persistedshare/devcontainers-cli/cache
2023-02-15 00:30:46.505Z: @devcontainers/cli 0.28.0. Node.js v14.21.2. linux 5.4.0-1103-azure x64.
2023-02-15 00:30:47.668Z: Error: Command failed: docker-compose -f /var/lib/docker/codespacemount/workspace/laravel-skeleton/docker-compose.yml -f /var/lib/docker/codespacemount/.persistedshare/docker-compose.codespaces.yml config
2023-02-15 00:30:47.670Z: at vc (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:1906:867)
2023-02-15 00:30:47.671Z: at processTicksAndRejections (internal/process/task_queues.js:95:5)
2023-02-15 00:30:47.673Z: at async rie (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:1872:1370)
2023-02-15 00:30:47.674Z: at async tie (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:1854:2396)
2023-02-15 00:30:47.678Z: {"outcome":"error","message":"Command failed: docker-compose -f /var/lib/docker/codespacemount/workspace/laravel-skeleton/docker-compose.yml -f /var/lib/docker/codespacemount/.persistedshare/docker-compose.codespaces.yml config","description":"An error occurred retrieving the Docker Compose configuration."}
2023-02-15 00:30:47.680Z: at async Fie (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:1921:2266)
2023-02-15 00:30:47.689Z: at async $f (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:1921:3239)
2023-02-15 00:30:47.695Z: at async eoe (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:2045:17247)
2023-02-15 00:30:47.699Z: at async Qse (/usr/lib/node_modules/@microsoft/vscode-dev-containers-cli/dist/spec-node/devContainersSpecCLI.js:2045:16993)
2023-02-15 00:30:47.702Z: devcontainer process exited with exit code 1
====================================== ERROR ====================================
2023-02-15 00:30:47.704Z: Failed to create container.
=================================================================================
2023-02-15 00:30:47.707Z: Error: Command failed: docker-compose -f /var/lib/docker/codespacemount/workspace/laravel-skeleton/docker-compose.yml -f /var/lib/docker/codespacemount/.persistedshare/docker-compose.codespaces.yml config
2023-02-15 00:30:47.710Z: Error Code: 1302
====================================== ERROR ====================================
2023-02-15 00:30:47.713Z: Container creation failed.
=================================================================================
2023-02-15 00:30:47.715Z:
===================================== WARNING ===================================
2023-02-15 00:30:47.718Z: Creating recovery container.
=================================================================================
=================================================================================
2023-02-15 00:30:48.127Z: Creating container...
2023-02-15 00:30:48.130Z: $ devcontainer up --id-label Type=codespaces --workspace-folder /var/lib/docker/codespacemount/workspace/laravel-skeleton --mount type=bind,source=/.codespaces/agent/mount/cache,target=/vscode --user-data-folder /var/lib/docker/codespacemount/.persistedshare --container-data-folder .vscode-remote/data/Machine --container-system-data-folder /var/vscode-remote --log-level trace --log-format json --update-remote-user-uid-default never --mount-workspace-git-root false --skip-non-blocking-commands --skip-post-create --config "/var/lib/docker/codespacemount/workspace/laravel-skeleton/.devcontainer/devcontainer.json" --override-config /root/.codespaces/shared/merged_devcontainer.json --default-user-env-probe loginInteractiveShell --container-session-data-folder /workspaces/.codespaces/.persistedshare/devcontainers-cli/cache
2023-02-15 00:30:48.340Z: @devcontainers/cli 0.28.0. Node.js v14.21.2. linux 5.4.0-1103-azure x64.
2023-02-15 00:31:03.747Z: $alpine -c echo Container started
2023-02-15 00:31:04.057Z: Container started
2023-02-15 00:31:04.386Z: Outcome: success User: vscode WorkspaceFolder: /workspaces/laravel-skeleton
2023-02-15 00:31:04.393Z: devcontainer process exited with exit code 0
=================================================================================
2023-02-15 00:31:05.800Z: Running blocking commands...
2023-02-15 00:31:05.802Z: $ devcontainer up --id-label Type=codespaces --workspace-folder /var/lib/docker/codespacemount/workspace/laravel-skeleton --mount type=bind,source=/.codespaces/agent/mount/cache,target=/vscode --user-data-folder /var/lib/docker/codespacemount/.persistedshare --container-data-folder .vscode-remote/data/Machine --container-system-data-folder /var/vscode-remote --log-level trace --log-format json --update-remote-user-uid-default never --mount-workspace-git-root false --skip-non-blocking-commands --expect-existing-container --config "/var/lib/docker/codespacemount/workspace/laravel-skeleton/.devcontainer/devcontainer.json" --override-config /root/.codespaces/shared/merged_devcontainer.json --default-user-env-probe loginInteractiveShell --container-session-data-folder /workspaces/.codespaces/.persistedshare/devcontainers-cli/cache
2023-02-15 00:31:06.013Z: @devcontainers/cli 0.28.0. Node.js v14.21.2. linux 5.4.0-1103-azure x64.
2023-02-15 00:31:06.270Z: Outcome: success User: vscode WorkspaceFolder: /workspaces/laravel-skeleton
2023-02-15 00:31:06.342Z: devcontainer process exited with exit code 0
=================================================================================
2023-02-15 00:31:06.427Z: Configuring codespace...
=================================================================================
2023-02-15 00:31:06.457Z: Finished configuring codespace.
About this issue
- Original URL
- State: closed
- Created a year ago
- Reactions: 1
- Comments: 18 (6 by maintainers)
I’ve followed this instructions and added the Laravel magic in
.devcontainer/devcontainer.json:It works !
I think the first mayor problem is that the docker-compose.yml is referencing a file that is in the vendor folder that doesnt exist yet
I had to change
vendor/call to the published version in the repo and changed'${WWWGROUP:-1000}'docker-compose.yml.devcontainer/devcontainer.jsonIn this case the issue is not only codespaces not working. Because the devcontainer is not self-containing. The issue is the same as mentioned in docs if you want to you sail in a project that already exists you need to install sail via composer first if you freshly cloned the project.
That’s the same issue that codespaces has.
So the devcontainer should be changed do be self-containing & not rely on any “vendor” stuff that cannot exist if you clone your repository.
First fix could be to publish the runtime images on hub and reference them as image in
docker-compose.yamlinstead of building from vendor.or running
php artisan sail:publishAnyway… the
devcontainer.jsonsetup is not “newcomer” friendly