From f492bb1c81cb88709d62f01bd8937053fe8e80e3 Mon Sep 17 00:00:00 2001 From: Fractal-Tess Date: Thu, 13 Feb 2025 02:27:44 +0200 Subject: [PATCH 1/4] mount correct socket on unix --- internal/start/start.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/start/start.go b/internal/start/start.go index d852d7324..de2821cf4 100644 --- a/internal/start/start.go +++ b/internal/start/start.go @@ -292,13 +292,13 @@ EOF fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires docker daemon exposed on tcp://localhost:2375") env = append(env, "DOCKER_HOST="+dindHost.String()) case "unix": - if parsed, err = client.ParseHostURL(client.DefaultDockerHost); err != nil { + if parsed, err = client.ParseHostURL(utils.Docker.DaemonHost()); err != nil { return errors.Errorf("failed to parse default host: %w", err) } if utils.Docker.DaemonHost() != client.DefaultDockerHost { fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires mounting default docker socket:", parsed.Host) } - binds = append(binds, fmt.Sprintf("%[1]s:%[1]s:ro", parsed.Host)) + binds = append(binds, fmt.Sprintf("%[1]s:%[2]s:ro", parsed.Host, "/var/run/docker.sock")) } if _, err := utils.DockerStart( ctx, From 2b094122a69183d1374a836d8e93a6e195b38d29 Mon Sep 17 00:00:00 2001 From: Han Qiao Date: Thu, 13 Feb 2025 13:07:24 +0800 Subject: [PATCH 2/4] fix: mount user socket as default in container --- internal/start/start.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/start/start.go b/internal/start/start.go index de2821cf4..759760e6b 100644 --- a/internal/start/start.go +++ b/internal/start/start.go @@ -292,13 +292,12 @@ EOF fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires docker daemon exposed on tcp://localhost:2375") env = append(env, "DOCKER_HOST="+dindHost.String()) case "unix": - if parsed, err = client.ParseHostURL(utils.Docker.DaemonHost()); err != nil { + if dindHost, err = client.ParseHostURL(client.DefaultDockerHost); err != nil { return errors.Errorf("failed to parse default host: %w", err) + } else if parsed.Host != dindHost.Host { + fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires mounting default docker socket:", dindHost.Host) } - if utils.Docker.DaemonHost() != client.DefaultDockerHost { - fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires mounting default docker socket:", parsed.Host) - } - binds = append(binds, fmt.Sprintf("%[1]s:%[2]s:ro", parsed.Host, "/var/run/docker.sock")) + binds = append(binds, fmt.Sprintf("%s:%s:ro", parsed.Host, dindHost.Host)) } if _, err := utils.DockerStart( ctx, From 5014448726d36d2a7d82618bdbdf9cc6da6b4def Mon Sep 17 00:00:00 2001 From: Han Qiao Date: Thu, 13 Feb 2025 13:14:00 +0800 Subject: [PATCH 3/4] Update start.go --- internal/start/start.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/start/start.go b/internal/start/start.go index 759760e6b..c0f2bf200 100644 --- a/internal/start/start.go +++ b/internal/start/start.go @@ -281,7 +281,7 @@ EOF return errors.Errorf("failed to parse docker host: %w", err) } // Ref: https://vector.dev/docs/reference/configuration/sources/docker_logs/#docker_host - dindHost := url.URL{Scheme: "http", Host: net.JoinHostPort(utils.DinDHost, "2375")} + dindHost := &url.URL{Scheme: "http", Host: net.JoinHostPort(utils.DinDHost, "2375")} switch parsed.Scheme { case "tcp": if _, port, err := net.SplitHostPort(parsed.Host); err == nil { From 67172db848a2b4c510e606b0577683bf03a7da81 Mon Sep 17 00:00:00 2001 From: Han Qiao Date: Thu, 13 Feb 2025 18:26:50 +0800 Subject: [PATCH 4/4] Update start.go --- internal/start/start.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/start/start.go b/internal/start/start.go index c0f2bf200..ea3b6e2f9 100644 --- a/internal/start/start.go +++ b/internal/start/start.go @@ -294,8 +294,6 @@ EOF case "unix": if dindHost, err = client.ParseHostURL(client.DefaultDockerHost); err != nil { return errors.Errorf("failed to parse default host: %w", err) - } else if parsed.Host != dindHost.Host { - fmt.Fprintln(os.Stderr, utils.Yellow("WARNING:"), "analytics requires mounting default docker socket:", dindHost.Host) } binds = append(binds, fmt.Sprintf("%s:%s:ro", parsed.Host, dindHost.Host)) }