mirror of https://github.com/containers/podman.git
podman compose: correctly accept --connection/--url
Make the logic here much simpler, we already pass all the conection info before so just use the parsed URL here. Fixes #20943 Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
parent
6d3571dcf5
commit
3cada04099
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue