Merge pull request #1229 from ddgenome/gcr-docker-config-1228

Use DOCKER_CONFIG for docker config location
This commit is contained in:
Tejal Desai 2020-05-05 21:25:40 -07:00 committed by GitHub
commit 2c341e43e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 4 deletions

View File

@ -53,9 +53,18 @@ type withUserAgent struct {
const (
UpstreamClientUaKey = "UPSTREAM_CLIENT_TYPE"
DockerConfLocation = "/kaniko/.docker/config.json"
)
// DockerConfLocation returns the file system location of the Docker configuration
// from the DOCKER_CONFIG environment variable. If that variable is not set, it
// returns "/kaniko/.docker/config.json".
func DockerConfLocation() string {
if dockerConfLocation := os.Getenv("DOCKER_CONFIG"); dockerConfLocation != "" {
return dockerConfLocation
}
return "/kaniko/.docker/config.json"
}
func (w *withUserAgent) RoundTrip(r *http.Request) (*http.Response, error) {
ua := []string{fmt.Sprintf("kaniko/%s", version.Version())}
if upstream := os.Getenv(UpstreamClientUaKey); upstream != "" {
@ -130,7 +139,7 @@ func CheckPushPermissions(opts *config.KanikoOptions) error {
if strings.Contains(destRef.RegistryStr(), "gcr.io") {
// Checking for existence of docker.config as it's normally required for
// authenticated registries and prevent overwriting user provided docker conf
if _, err := fs.Stat(DockerConfLocation); os.IsNotExist(err) {
if _, err := fs.Stat(DockerConfLocation()); os.IsNotExist(err) {
if err := execCommand("docker-credential-gcr", "configure-docker").Run(); err != nil {
return errors.Wrap(err, "error while configuring docker-credential-gcr helper")
}

View File

@ -354,8 +354,8 @@ func TestCheckPushPermissions(t *testing.T) {
Destinations: []string{test.Destination},
}
if test.ExistingConfig {
afero.WriteFile(fs, DockerConfLocation, []byte(""), os.FileMode(0644))
defer fs.Remove(DockerConfLocation)
afero.WriteFile(fs, DockerConfLocation(), []byte(""), os.FileMode(0644))
defer fs.Remove(DockerConfLocation())
}
CheckPushPermissions(&opts)
if test.ShouldCallExecCommand != calledExecCommand {