From 74eab92dabd352dea0b3e7de19511b225de923b1 Mon Sep 17 00:00:00 2001 From: SIGSEGV Date: Sat, 27 Jun 2026 19:58:04 +0800 Subject: [PATCH] fix: support Docker over SSH by using connhelper dialer --- pkg/docker/docker.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/docker/docker.go b/pkg/docker/docker.go index bc5255eed0..8699ea4d96 100644 --- a/pkg/docker/docker.go +++ b/pkg/docker/docker.go @@ -11,6 +11,7 @@ import ( "strings" "github.com/containerd/errdefs" + "github.com/docker/cli/cli/connhelper" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/image" @@ -62,6 +63,10 @@ func NewClient(ctx context.Context, opts ...Option) (*apiClient, error) { client.WithHost(clientOptions.host), } + if helper, err := connhelper.GetConnectionHelper(clientOptions.host); err == nil && helper != nil { + dockerClientOpts = append(dockerClientOpts, client.WithDialContext(helper.Dialer)) + } + client, err := client.NewClientWithOpts(dockerClientOpts...) if err != nil { return nil, fmt.Errorf("error creating docker client: %w", err)