- Notifications
You must be signed in to change notification settings - Fork924
Description
This is a nice alternative toenvbuilder
, so nice to see.
Using the docs, I was able to create a template with a custom image that includes Docker and devcontainer-cli. Note: using the Coder module failed, saying it needs sudo permissions, as my image, like most images, runs as a non-root user.
My test is experimental and only on my Mac, so I just made the container privileged in the coder template and start docker in the startup script.
I've tried with the simple Coder devcontainer example for envbuilder and another flask devcontainer I have, and both face the following issues:
- Web terminal does not connect
- VS Code Desktop does connect, but gives an authentication error initially. However, if I open VS Code Desktop, for the workspace, not the devcontainer, then open VS Code Desktop for the devcontainer, there isn't an auth error.
- I copy/pasted the SSH command from the workspace dashboard, and it fails with no messages - i.e., it just returns to the command prompt of the host, and did not connect. I use Warp as a terminal shell, and it's AI somehow saw an error code
- I can
docker exec
fine into the inner container and see the devcontainer repo cloned there, etc. In VS Code Desktop as well, I see the Flask app is running. I can curl it but of course, can't figure how to port forward. I think the docs mentioned that.
So, in summary, VS Code Desktop works fine, but SSH and Web Terminal do not.
PS I like the cool UI dimmed notification if I change the Dockerfile in the devcontainer repo. Slick. However the recreate button should be hidden initially since nothing has changed.
Since the control plane is being run in terminal as a binary, I did capture this when opening Web Terminal:
read devcontainer remoteEnv: unmarshal devcontainer.metadata: json: cannot unmarshal object into Go value of type []dcspec.DevContainer\
2025-06-10 01:36:11.226 [info] coderd: audit_log request_id=fb177d97-fb0e-4372-a59e-b20f07c3ea28 ID=dedcae2c-dc9a-40be-876a-84d756850229 Time="2025-06-10T01:36:11.20496Z" UserID=00000000-0000-0000-0000-000000000000 OrganizationID=baf07fae-707b-483e-bef1-bb71325ecbc0 Ip=fd7a:115c:a1e0:4b37:9747:dbfe:91fc:6665 UserAgent="" ResourceType=workspace_agent ResourceID=5661ea91-29fd-450d-b81e-427caefdd417 ResourceTarget=dev Action=disconnect Diff="{}" StatusCode=229 AdditionalFields="{\"workspace_name\":\"dc\",\"build_number\":\"5\",\"build_reason\":\"initiator\",\"workspace_owner\":\"mtm20176\",\"workspace_id\":\"d43fe2d9-f00b-4cab-88f8-8ba421252e5f\",\"connection_type\":\"SSH\",\"reason\":\"read devcontainer remoteEnv: unmarshal devcontainer.metadata: json: cannot unmarshal object into Go value of type []dcspec.DevContainer\"}" RequestID=225869e4-de3c-4e30-bf5b-270ad05402a3 ResourceIcon="" actor="&{ID:00000000-0000-0000-0000-000000000000 Email: Username:}"
I put screenshots below to help.
My config:
Mac, running Colima as docker daemon, and running2.23.0
as a binary.
Web Terminal:
VS Code Desktop:
SSH: