From 6d6375afa28892b2e260b5ff3e5540c017a8b66f Mon Sep 17 00:00:00 2001 From: 7ttp <117663341+7ttp@users.noreply.github.com> Date: Wed, 8 Jul 2026 04:03:25 +0530 Subject: [PATCH 1/2] fix --- apps/cli-go/internal/start/start.go | 14 +++++++++++--- apps/cli-go/internal/start/start_test.go | 13 +++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/apps/cli-go/internal/start/start.go b/apps/cli-go/internal/start/start.go index 23aa631e3b..2119aed3b5 100644 --- a/apps/cli-go/internal/start/start.go +++ b/apps/cli-go/internal/start/start.go @@ -128,6 +128,13 @@ type vectorConfig struct { DbId string } +func shouldMountRootDockerSocket(host string) bool { + return strings.HasSuffix(host, "/.docker/run/docker.sock") || + strings.HasSuffix(host, "/.docker/desktop/docker.sock") || + strings.HasSuffix(host, "/.colima/default/docker.sock") || + strings.HasSuffix(host, "/.colima/docker.sock") +} + var ( //go:embed templates/vector.yaml vectorConfigEmbed string @@ -424,15 +431,16 @@ EOF case "unix": if dindHost, err = client.ParseHostURL(client.DefaultDockerHost); err != nil { return errors.Errorf("failed to parse default host: %w", err) - } else if strings.HasSuffix(parsed.Host, "/.docker/run/docker.sock") || - strings.HasSuffix(parsed.Host, "/.docker/desktop/docker.sock") { + } else if shouldMountRootDockerSocket(parsed.Host) { // Docker will not mount rootless socket directly; // instead, specify root socket to have it handled under the hood binds = append(binds, fmt.Sprintf("%[1]s:%[1]s:ro", dindHost.Host)) } else { // Podman and OrbStack can mount root-less socket without issue binds = append(binds, fmt.Sprintf("%s:%s:ro", parsed.Host, dindHost.Host)) - securityOpts = append(securityOpts, "label:disable") + if parsed.Host != dindHost.Host { + securityOpts = append(securityOpts, "label:disable") + } } } if _, err := utils.DockerStart( diff --git a/apps/cli-go/internal/start/start_test.go b/apps/cli-go/internal/start/start_test.go index 2977c5ed79..5aabd3b3c1 100644 --- a/apps/cli-go/internal/start/start_test.go +++ b/apps/cli-go/internal/start/start_test.go @@ -162,6 +162,19 @@ func TestStartCommand(t *testing.T) { }) } +func TestShouldMountRootDockerSocket(t *testing.T) { + t.Run("returns true for Docker Desktop and Colima sockets", func(t *testing.T) { + assert.True(t, shouldMountRootDockerSocket("/Users/test/.docker/run/docker.sock")) + assert.True(t, shouldMountRootDockerSocket("/Users/test/.docker/desktop/docker.sock")) + assert.True(t, shouldMountRootDockerSocket("/Users/test/.colima/default/docker.sock")) + assert.True(t, shouldMountRootDockerSocket("/Users/test/.colima/docker.sock")) + }) + + t.Run("returns false for directly mountable sockets", func(t *testing.T) { + assert.False(t, shouldMountRootDockerSocket("/Users/test/.orbstack/run/docker.sock")) + }) +} + func TestDatabaseStart(t *testing.T) { t.Run("starts database locally", func(t *testing.T) { // Setup in-memory fs From 423b709c99fc728ec071395cd61a1276b153f0cf Mon Sep 17 00:00:00 2001 From: 7ttp <117663341+7ttp@users.noreply.github.com> Date: Wed, 8 Jul 2026 04:16:35 +0530 Subject: [PATCH 2/2] Nits --- apps/cli-go/internal/start/start.go | 6 ++---- apps/cli-go/internal/start/start_test.go | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/cli-go/internal/start/start.go b/apps/cli-go/internal/start/start.go index 2119aed3b5..6264016e79 100644 --- a/apps/cli-go/internal/start/start.go +++ b/apps/cli-go/internal/start/start.go @@ -131,7 +131,7 @@ type vectorConfig struct { func shouldMountRootDockerSocket(host string) bool { return strings.HasSuffix(host, "/.docker/run/docker.sock") || strings.HasSuffix(host, "/.docker/desktop/docker.sock") || - strings.HasSuffix(host, "/.colima/default/docker.sock") || + (strings.Contains(host, "/.colima/") && strings.HasSuffix(host, "/docker.sock")) || strings.HasSuffix(host, "/.colima/docker.sock") } @@ -438,9 +438,7 @@ EOF } else { // Podman and OrbStack can mount root-less socket without issue binds = append(binds, fmt.Sprintf("%s:%s:ro", parsed.Host, dindHost.Host)) - if parsed.Host != dindHost.Host { - securityOpts = append(securityOpts, "label:disable") - } + securityOpts = append(securityOpts, "label:disable") } } if _, err := utils.DockerStart( diff --git a/apps/cli-go/internal/start/start_test.go b/apps/cli-go/internal/start/start_test.go index 5aabd3b3c1..a69f7bd8bc 100644 --- a/apps/cli-go/internal/start/start_test.go +++ b/apps/cli-go/internal/start/start_test.go @@ -167,6 +167,7 @@ func TestShouldMountRootDockerSocket(t *testing.T) { assert.True(t, shouldMountRootDockerSocket("/Users/test/.docker/run/docker.sock")) assert.True(t, shouldMountRootDockerSocket("/Users/test/.docker/desktop/docker.sock")) assert.True(t, shouldMountRootDockerSocket("/Users/test/.colima/default/docker.sock")) + assert.True(t, shouldMountRootDockerSocket("/Users/test/.colima/local/docker.sock")) assert.True(t, shouldMountRootDockerSocket("/Users/test/.colima/docker.sock")) })