Skip to content

devcontainer-cli behavior #18299

Open
@sharkymark

Description

@sharkymark

This is a nice alternative to envbuilder, 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:

  1. Web terminal does not connect
  2. 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.
  3. 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
  4. 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 running 2.23.0 as a binary.

Image

Web Terminal:

Image

VS Code Desktop:

Image

SSH:

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions