From 2ba9de2facb7a64c54a69214b3a1c1928cc92292 Mon Sep 17 00:00:00 2001 From: Dorin Geman Date: Wed, 11 Feb 2026 14:25:26 +0200 Subject: [PATCH] feat: add SSH remote host support via -H flag Fixes #653. Signed-off-by: Dorin Geman --- cmd/cli/desktop/context.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/cmd/cli/desktop/context.go b/cmd/cli/desktop/context.go index badb40f7e..3b2c6209c 100644 --- a/cmd/cli/desktop/context.go +++ b/cmd/cli/desktop/context.go @@ -13,6 +13,7 @@ import ( "github.com/containerd/errdefs" "github.com/docker/cli/cli/command" + "github.com/docker/cli/cli/connhelper" "github.com/docker/cli/cli/context/docker" "github.com/docker/docker/api/types/container" clientpkg "github.com/docker/docker/client" @@ -83,11 +84,25 @@ func DockerClientForContext(cli *command.DockerCli, name string) (*clientpkg.Cli if err != nil { return nil, fmt.Errorf("unable to determine context endpoint: %w", err) } - return clientpkg.NewClientWithOpts( + + opts := []clientpkg.Opt{ clientpkg.FromEnv, - clientpkg.WithHost(endpoint.Host), clientpkg.WithAPIVersionNegotiation(), - ) + clientpkg.WithHost(endpoint.Host), + } + + helper, err := connhelper.GetConnectionHelper(endpoint.Host) + if err != nil { + return nil, fmt.Errorf("unable to get SSH connection helper: %w", err) + } + if helper != nil { + opts = append(opts, + clientpkg.WithHost(helper.Host), + clientpkg.WithDialContext(helper.Dialer), + ) + } + + return clientpkg.NewClientWithOpts(opts...) } // ModelRunnerContext encodes the operational context of a Model CLI command and