Skip to content

Commit

Permalink
Use DOCKER_CONFIG for docker config location
Browse files Browse the repository at this point in the history
If the DOCKER_CONFIG environment variable is set, use it when
determining if the Docker config file exists.  Fall back to kaniko
default if it the DOCKER_CONFIG environment variable is not set.

Fixes GoogleContainerTools#1228
  • Loading branch information
David Dooling committed May 4, 2020
1 parent d8c786c commit 0871dfd
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
13 changes: 11 additions & 2 deletions pkg/executor/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 != "" {
Expand Down Expand Up @@ -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")
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/executor/push_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit 0871dfd

Please sign in to comment.