mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![Sebastiaan van Stijn](/assets/img/avatar_default.png)
The registry package contained code to automatically set the CertsDir() path,
based on wether or not the daemon was running in rootlessmode. In doing so,
it made use of the `pkg/rootless.RunningWithRootlessKit()` utility.
A recent change in de6732a403
added additional
functionality in the `pkg/rootless` package, introducing a dependency on
`github.com/rootless-containers/rootlesskit`. Unfortunately, the extra
dependency also made its way into the docker cli, which also uses the
registry package.
This patch introduces a new `SetCertsDir()` function, which allows
the default certs-directory to be overridden, and updates the daemon
to configure this location during startup.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
20 lines
742 B
Go
20 lines
742 B
Go
package registry // import "github.com/docker/docker/registry"
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
// defaultCertsDir is the platform-specific default directory where certificates
|
|
// are stored. On Linux, it may be overridden through certsDir, for example, when
|
|
// running in rootless mode.
|
|
var defaultCertsDir = os.Getenv("programdata") + `\docker\certs.d`
|
|
|
|
// cleanPath is used to ensure that a directory name is valid on the target
|
|
// platform. It will be passed in something *similar* to a URL such as
|
|
// https:\index.docker.io\v1. Not all platforms support directory names
|
|
// which contain those characters (such as : on Windows)
|
|
func cleanPath(s string) string {
|
|
return filepath.FromSlash(strings.Replace(s, ":", "", -1))
|
|
}
|