mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
* initial Db helper split - make SQL and datastore packages optional * abstracting log store * break out DB, MQ and log drivers as extensions * cleanup * fewer deps * fixing docker test * hmm dbness * updating db startup * Consolidate all your extensions into one convenient package * cleanup * clean up dep constraints
28 lines
623 B
Go
28 lines
623 B
Go
package docker
|
|
|
|
import (
|
|
"net/url"
|
|
"strings"
|
|
)
|
|
|
|
const hubURL = "https://registry.hub.docker.com"
|
|
|
|
func registryURL(addr string) (string, error) {
|
|
if addr == "" || strings.Contains(addr, "hub.docker.com") || strings.Contains(addr, "index.docker.io") {
|
|
return hubURL, nil
|
|
}
|
|
|
|
uri, err := url.Parse(addr)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
if uri.Scheme == "" {
|
|
uri.Scheme = "https"
|
|
}
|
|
uri.Path = strings.TrimSuffix(uri.Path, "/")
|
|
uri.Path = strings.TrimPrefix(uri.Path, "/v2")
|
|
uri.Path = strings.TrimPrefix(uri.Path, "/v1") // just try this, if it fails it fails, not supporting v1
|
|
return uri.String(), nil
|
|
}
|