diff --git a/cmd/podman/compose.go b/cmd/podman/compose.go index 7afbbba52a..f90e5acfe5 100644 --- a/cmd/podman/compose.go +++ b/cmd/podman/compose.go @@ -108,10 +108,8 @@ func composeDockerHost() (string, error) { return registry.DefaultAPIAddress(), nil } - // TODO need to add support for --connection and --url - connection, err := registry.PodmanConfig().ContainersConfDefaultsRO.GetConnection("", true) - if err != nil { - logrus.Info(err) + conf := registry.PodmanConfig() + if conf.URI == "" { switch runtime.GOOS { // If no default connection is set on Linux or FreeBSD, // we just use the local socket by default - just as @@ -126,20 +124,20 @@ func composeDockerHost() (string, error) { } } - parsedConnection, err := url.Parse(connection.URI) + parsedConnection, err := url.Parse(conf.URI) if err != nil { return "", fmt.Errorf("preparing connection to remote machine: %w", err) } // If the default connection does not point to a `podman // machine`, we cannot use a local path and need to use SSH. - if !connection.IsMachine { + if !conf.MachineMode { // Compose doesn't like paths, so we optimistically // assume the presence of a Docker socket on the remote // machine which is the case for podman machines. - return strings.TrimSuffix(connection.URI, parsedConnection.Path), nil + return strings.TrimSuffix(conf.URI, parsedConnection.Path), nil } - uri, err := getMachineConn(connection, parsedConnection) + uri, err := getMachineConn(conf.URI, parsedConnection) if err != nil { return "", fmt.Errorf("get machine connection URI: %w", err) } diff --git a/cmd/podman/compose_machine.go b/cmd/podman/compose_machine.go index d1ec369b78..953b1eae0f 100644 --- a/cmd/podman/compose_machine.go +++ b/cmd/podman/compose_machine.go @@ -7,14 +7,13 @@ import ( "net/url" "strconv" - "github.com/containers/common/pkg/config" "github.com/containers/podman/v5/pkg/machine" "github.com/containers/podman/v5/pkg/machine/define" "github.com/containers/podman/v5/pkg/machine/provider" "github.com/containers/podman/v5/pkg/machine/vmconfigs" ) -func getMachineConn(connection *config.Connection, parsedConnection *url.URL) (string, error) { +func getMachineConn(connectionURI string, parsedConnection *url.URL) (string, error) { machineProvider, err := provider.Get() if err != nil { return "", fmt.Errorf("getting machine provider: %w", err) @@ -64,6 +63,5 @@ func getMachineConn(connection *config.Connection, parsedConnection *url.URL) (s // return "unix://" + info.ConnectionInfo.PodmanSocket.Path, nil return "", nil } - - return "", fmt.Errorf("could not find a matching machine for connection %q", connection.URI) + return "", fmt.Errorf("could not find a matching machine for connection %q", connectionURI) } diff --git a/cmd/podman/compose_machine_unsupported.go b/cmd/podman/compose_machine_unsupported.go index 219f78d57c..f1ec7f67bd 100644 --- a/cmd/podman/compose_machine_unsupported.go +++ b/cmd/podman/compose_machine_unsupported.go @@ -5,10 +5,8 @@ package main import ( "errors" "net/url" - - "github.com/containers/common/pkg/config" ) -func getMachineConn(connection *config.Connection, parsedConnection *url.URL) (string, error) { +func getMachineConn(connection string, parsedConnection *url.URL) (string, error) { return "", errors.New("podman machine not supported on this architecture") }