From fa82be95080371d9f71d9c1ad0e5ab9a3e4427ad Mon Sep 17 00:00:00 2001 From: Amin Ehterami Date: Thu, 28 May 2026 16:00:00 +0330 Subject: [PATCH 1/2] fix(tooler): detect both legacy docker-compose and the docker cli compose plugin --- internal/tooler/dockercomposetooler/tooler.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal/tooler/dockercomposetooler/tooler.go b/internal/tooler/dockercomposetooler/tooler.go index 67691209..0d305c76 100644 --- a/internal/tooler/dockercomposetooler/tooler.go +++ b/internal/tooler/dockercomposetooler/tooler.go @@ -2,7 +2,9 @@ package dockercomposetooler import ( "context" + "os/exec" + "github.com/signoz/foundry/internal/errors" root "github.com/signoz/foundry/internal/tooler" ) @@ -20,6 +22,18 @@ func (tooler *dockerComposeTooler) Name() string { func (tooler *dockerComposeTooler) Gauge(ctx context.Context) error { return root.AnyOneExecChecker(ctx, "docker-compose", "docker compose") + // Legacy standalone binary. + if err := root.ExecChecker(ctx, "docker-compose"); err == nil { + return nil + } + + if err := root.ExecChecker(ctx, "docker"); err == nil { + if err := exec.CommandContext(ctx, "docker", "compose", "version").Run(); err == nil { + return nil + } + } + + return errors.Newf(errors.TypeNotFound, "neither 'docker-compose' nor the 'docker compose' plugin is available") } func (tooler *dockerComposeTooler) Install(ctx context.Context) error { From 141199c8dbb7a21373305d1a1b8c4302275065fb Mon Sep 17 00:00:00 2001 From: Amin Ehterami Date: Sat, 30 May 2026 10:10:27 +0330 Subject: [PATCH 2/2] fix typo --- internal/tooler/dockercomposetooler/tooler.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/tooler/dockercomposetooler/tooler.go b/internal/tooler/dockercomposetooler/tooler.go index 0d305c76..685d638b 100644 --- a/internal/tooler/dockercomposetooler/tooler.go +++ b/internal/tooler/dockercomposetooler/tooler.go @@ -21,7 +21,6 @@ func (tooler *dockerComposeTooler) Name() string { } func (tooler *dockerComposeTooler) Gauge(ctx context.Context) error { - return root.AnyOneExecChecker(ctx, "docker-compose", "docker compose") // Legacy standalone binary. if err := root.ExecChecker(ctx, "docker-compose"); err == nil { return nil