loft-sh / devpod

Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.
https://devpod.sh
Mozilla Public License 2.0
8.42k stars 305 forks source link

devpod can not connect to docker deamon (colima) when use a dockerfile #1129

Open larsselle opened 1 week ago

larsselle commented 1 week ago

What happened?
I have a DecContainer setup using Dockerfile.

When I create the workspace, I get the following error.

[14:28:09] info Workspace test already exists
[14:28:09] debug Acquire workspace lock...
[14:28:09] debug Acquired workspace lock...
[14:28:09] info Creating devcontainer...
[14:28:09] debug Attempting to create SSH client
[14:28:09] debug Inject and run command: '/Applications/DevPod.app/Contents/MacOS/devpod-cli' helper ssh-server --stdio --debug
[14:28:09] debug Execute command locally
[14:28:09] debug SSH client created
[14:28:09] debug SSH session created
[14:28:09] debug Forwarding ssh-agent using /private/tmp/com.apple.launchd.MZWh7i86RD/Listeners
[14:28:09] info Execute SSH server command: bash -c '/Applications/DevPod.app/Contents/MacOS/devpod-cli' agent workspace up --workspace-info 'H4sIAAAAAAAA/7RS0W4aMRD8l332neFSovTeKNAGNekhclRqXyLXXsCJz7a8vkukiH+vzBGgbfLYx5Vn1rMz8wJPLjySFxKroDfaQgl8RRiIGxEoJzQGea6w805x6WzE50hc4Vq0JvIjmXhEOpvzB3IW2Gk7lC+gFZSQcMCgPQ7Zfll2IS+LK2Dgg+u0wpAIVjQIJSgnHzEAA+ejdpbS07SafJ0t7xfj+jqNnTDtH9CWMCz6VQrKGFrcMZh/G0/q+fd5/eO+nt/OqlWduG9AdzsGjZBbbZPwHQOt8EyQ82g7kk4h7BiQa0N/oHFSmM/O7OW/4aMP7gFl7M1KVBlQpJNq3SBF0XgooRgUH7LBZVYM6mFRDi/K0fAnMDCC4oqSwr8QxVU5+JgQh3SSC3086QexQRuP2pLlocVks4jbpHHsvdFyL4L4FLuFU7nwnk/SMhuJ3wpZ3fG+AJk0Ghgo92SNE2q1vIEStjF6Kjnf6Lhtf+XSNdy4dcxoe2DxgAYFIfFXIu8G+SgfjoCBtsmRLzpOAiq0UQtDJ5X4jLIPoA/WINH5nA47XHJMXluKwqRT18LQPiHZUnRNIqbB6OrUo4D7DLAPnkFAwngszL+F+7Sa30xny3d6w15h19Xde91i/727vwEAAP//AQAA//9Hh1iL1QMAAA==' --debug
[14:28:09] info Use /Users/user/.devpod/agent/contexts/default/workspaces/test as workspace dir
[14:28:09] debug Created logger
[14:28:09] debug Received ping from agent
[14:28:09] debug Credentials server started on port 12049...
[14:28:09] debug Incoming client connection at /
[14:28:09] debug Credentials server started...
[14:28:09] debug Workspace Folder already exists /Users/lars.selle/projects/test
[14:28:09] debug Local folder with local provider; skip downloading
[14:28:09] debug Using docker command 'docker'
[14:28:09] debug Prebuild hash from:
[14:28:09] debug Arch: arm64
[14:28:09] debug Config: {"name":"test","build":{"dockerfile":"Dockerfile","context":".."}}
[14:28:09] debug DockerfileContent: FROM ubuntu:20.04 AS dev_container_auto_added_stage_label

RUN apt-get update && apt-get install vim
[14:28:09] debug ContextHash: ffaff93f749b6c08f2fca3b1f2d609eb66cb26111302cb527d3567365c08cb45
[14:28:09] debug Try to find prebuild image devpod-7120648784d4069a92cbc7fa8f619f20 in repositories
[14:28:09] debug Error trying to find local image vsc-test-852af:devpod-7120648784d4069a92cbc7fa8f619f20: inspect container: []

Error response from daemon: No such image: vsc-test-852af:devpod-7120648784d4069a92cbc7fa8f619f20

exit status 1
[14:28:09] info Build with internal buildkit...
[14:28:09] info W0620 14:28:09.284531   48453 logging.go:59] [core] [Channel #4 SubChannel #5] grpc: addrConn.createTransport failed to connect to {Addr: "/run/buildkit/buildkitd.sock", ServerName: "localhost", Attributes: {"<%!p(networktype.keyType=grpc.internal.transport.networktype)>": "unix" }, }. Err: connection error: desc = "transport: Error while dialing: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: no such file or directory"
[14:28:09] info dial unix /var/run/docker.sock: connect: no such file or directory
[14:28:09] info cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
[14:28:09] info github.com/docker/docker/client.(*Client).setupHijackConn
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/docker/docker/client/hijack.go:56
[14:28:09] info github.com/docker/docker/client.(*Client).DialHijack
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/docker/docker/client/hijack.go:44
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer/buildkit.NewDockerClient.func2
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/buildkit/conn.go:15
[14:28:09] info github.com/moby/buildkit/session.(*Session).Run
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/moby/buildkit/session/session.go:119
[14:28:09] info github.com/moby/buildkit/client.(*Client).solve.func1
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/moby/buildkit/client/solve.go:216
[14:28:09] info golang.org/x/sync/errgroup.(*Group).Go.func1
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/golang.org/x/sync/errgroup/errgroup.go:78
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] info failed to dial gRPC
[14:28:09] info github.com/moby/buildkit/session.(*Session).Run
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/moby/buildkit/session/session.go:121
[14:28:09] info github.com/moby/buildkit/client.(*Client).solve.func1
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/moby/buildkit/client/solve.go:216
[14:28:09] info golang.org/x/sync/errgroup.(*Group).Go.func1
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/golang.org/x/sync/errgroup/errgroup.go:78
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] info build
[14:28:09] info github.com/loft-sh/devpod/pkg/driver/docker.(*dockerDriver).internalBuild
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/driver/docker/build.go:258
[14:28:09] info github.com/loft-sh/devpod/pkg/driver/docker.(*dockerDriver).BuildDevContainer
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/driver/docker/build.go:95
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).buildImage
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:331
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).buildAndExtendImage
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:187
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).build
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:30
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).runSingleContainer
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/single.go:77
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).Up
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/run.go:121
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).devPodUp
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:407
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).up
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:161
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).Run
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:95
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.NewUpCmd.func1
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:53
[14:28:09] info github.com/spf13/cobra.(*Command).execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:983
[14:28:09] info github.com/spf13/cobra.(*Command).ExecuteC
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1115
[14:28:09] info github.com/spf13/cobra.(*Command).Execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1039
[14:28:09] info github.com/loft-sh/devpod/cmd.Execute
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/root.go:90
[14:28:09] info main.main
[14:28:09] info /Users/runner/work/devpod/devpod/main.go:6
[14:28:09] info runtime.main
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/proc.go:271
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] info internal build
[14:28:09] info github.com/loft-sh/devpod/pkg/driver/docker.(*dockerDriver).BuildDevContainer
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/driver/docker/build.go:97
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).buildImage
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:331
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).buildAndExtendImage
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:187
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).build
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/build.go:30
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).runSingleContainer
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/single.go:77
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).Up
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/run.go:121
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).devPodUp
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:407
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).up
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:161
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).Run
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:95
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.NewUpCmd.func1
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:53
[14:28:09] info github.com/spf13/cobra.(*Command).execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:983
[14:28:09] info github.com/spf13/cobra.(*Command).ExecuteC
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1115
[14:28:09] info github.com/spf13/cobra.(*Command).Execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1039
[14:28:09] info github.com/loft-sh/devpod/cmd.Execute
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/root.go:90
[14:28:09] info main.main
[14:28:09] info /Users/runner/work/devpod/devpod/main.go:6
[14:28:09] info runtime.main
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/proc.go:271
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] info build image
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).runSingleContainer
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/single.go:85
[14:28:09] info github.com/loft-sh/devpod/pkg/devcontainer.(*runner).Up
[14:28:09] info /Users/runner/work/devpod/devpod/pkg/devcontainer/run.go:121
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).devPodUp
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:407
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).up
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:161
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).Run
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:95
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.NewUpCmd.func1
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:53
[14:28:09] info github.com/spf13/cobra.(*Command).execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:983
[14:28:09] info github.com/spf13/cobra.(*Command).ExecuteC
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1115
[14:28:09] info github.com/spf13/cobra.(*Command).Execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1039
[14:28:09] info github.com/loft-sh/devpod/cmd.Execute
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/root.go:90
[14:28:09] info main.main
[14:28:09] info /Users/runner/work/devpod/devpod/main.go:6
[14:28:09] info runtime.main
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/proc.go:271
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] info devcontainer up
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.(*UpCmd).Run
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:97
[14:28:09] info github.com/loft-sh/devpod/cmd/agent/workspace.NewUpCmd.func1
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/agent/workspace/up.go:53
[14:28:09] info github.com/spf13/cobra.(*Command).execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:983
[14:28:09] info github.com/spf13/cobra.(*Command).ExecuteC
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1115
[14:28:09] info github.com/spf13/cobra.(*Command).Execute
[14:28:09] info /Users/runner/work/devpod/devpod/vendor/github.com/spf13/cobra/command.go:1039
[14:28:09] info github.com/loft-sh/devpod/cmd.Execute
[14:28:09] info /Users/runner/work/devpod/devpod/cmd/root.go:90
[14:28:09] info main.main
[14:28:09] info /Users/runner/work/devpod/devpod/main.go:6
[14:28:09] info runtime.main
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/proc.go:271
[14:28:09] info runtime.goexit
[14:28:09] info /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222
[14:28:09] debug Connection to SSH Server closed
[14:28:09] debug Done creating devcontainer
[14:28:09] debug Done executing ssh server helper command
[14:28:09] fatal Process exited with status 1
run agent command
github.com/loft-sh/devpod/pkg/devcontainer/sshtunnel.ExecuteCommand.func2
        /Users/runner/work/devpod/devpod/pkg/devcontainer/sshtunnel/sshtunnel.go:120
runtime.goexit
        /Users/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.2.darwin-arm64/src/runtime/asm_arm64.s:1222

The socket for the deamon is unix:///Users/user/.colima/default/docker.sock and not /var/run/docker.sock.

What did you expect to happen instead?
DevPod use the docker socket from colima and not the default socket.

How can we reproduce the bug? (as minimally and precisely as possible)

My devcontainer.json:

{
    "name": "test",

    "build": {
        "dockerfile": "Dockerfile",
        "context": ".."
    }
}

My Dockerfile:

FROM ubuntu:20.04

RUN apt-get update && apt-get install vim

It is an example for a quick test.

Local Environment:

DevPod Provider: