github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/util/dockerutil/context.go (about) 1 package dockerutil 2 3 import ( 4 "github.com/docker/cli/cli/command" 5 "github.com/docker/cli/cli/context/docker" 6 "github.com/pkg/errors" 7 ) 8 9 // GetDockerEndpoint returns docker endpoint meta for given context 10 func GetDockerEndpoint(dockerCli command.Cli, name string) (*docker.EndpointMeta, error) { 11 list, err := dockerCli.ContextStore().List() 12 if err != nil { 13 return nil, err 14 } 15 for _, l := range list { 16 if l.Name == name { 17 epm, err := docker.EndpointFromContext(l) 18 if err != nil { 19 return nil, err 20 } 21 return &epm, nil 22 } 23 } 24 return nil, nil 25 } 26 27 // GetCurrentEndpoint returns the current default endpoint value 28 func GetCurrentEndpoint(dockerCli command.Cli) (string, error) { 29 name := dockerCli.CurrentContext() 30 if name != "default" { 31 return name, nil 32 } 33 dem, err := GetDockerEndpoint(dockerCli, name) 34 if err != nil { 35 return "", errors.Errorf("docker endpoint for %q not found", name) 36 } else if dem != nil { 37 return dem.Host, nil 38 } 39 return "", nil 40 }