From 9ef68fbbb59402442616389853dae222e806a177 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Fri, 6 Sep 2024 17:04:40 +0100 Subject: [PATCH 1/2] fix: set DOCKER_CONFIG dynamically --- envbuilder.go | 6 ++++++ scripts/Dockerfile | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/envbuilder.go b/envbuilder.go index ac64beea..f9716c5f 100644 --- a/envbuilder.go +++ b/envbuilder.go @@ -1497,9 +1497,15 @@ func initDockerConfigJSON(logf log.Func, magicDir magicdir.MagicDir, dockerConfi return noop, fmt.Errorf("write docker config: %w", err) } logf(log.LevelInfo, "Wrote Docker config JSON to %s", cfgPath) + oldDockerConfig := os.Getenv("DOCKER_CONFIG") + os.Setenv("DOCKER_CONFIG", magicDir.String()) + logf(log.LevelInfo, "Set DOCKER_CONFIG to %s", magicDir.String()) cleanup := func() error { var cleanupErr error cleanupOnce.Do(func() { + // Restore the old DOCKER_CONFIG value. + os.Setenv("DOCKER_CONFIG", oldDockerConfig) + logf(log.LevelInfo, "Restored DOCKER_CONFIG to %s", oldDockerConfig) // Remove the Docker config secret file! if cleanupErr = os.Remove(cfgPath); err != nil { if !errors.Is(err, fs.ErrNotExist) { diff --git a/scripts/Dockerfile b/scripts/Dockerfile index b8198a1d..6259407b 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -4,7 +4,5 @@ ARG TARGETARCH COPY envbuilder-${TARGETARCH} /.envbuilder/bin/envbuilder ENV KANIKO_DIR /.envbuilder -# Kaniko looks for the Docker config at $DOCKER_CONFIG/config.json -ENV DOCKER_CONFIG /.envbuilder ENTRYPOINT ["/.envbuilder/bin/envbuilder"] From 5672adaa68fcc6c7411712e2ddc18a46713ed1ad Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Mon, 9 Sep 2024 23:13:21 +0100 Subject: [PATCH 2/2] fixup --- envbuilder.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/envbuilder.go b/envbuilder.go index f9716c5f..934c51e3 100644 --- a/envbuilder.go +++ b/envbuilder.go @@ -1475,7 +1475,7 @@ func initDockerConfigJSON(logf log.Func, magicDir magicdir.MagicDir, dockerConfi if dockerConfigBase64 == "" { return noop, nil } - cfgPath := filepath.Join(magicDir.Path(), "config.json") + cfgPath := magicDir.Join("config.json") decoded, err := base64.StdEncoding.DecodeString(dockerConfigBase64) if err != nil { return noop, fmt.Errorf("decode docker config: %w", err) @@ -1498,8 +1498,9 @@ func initDockerConfigJSON(logf log.Func, magicDir magicdir.MagicDir, dockerConfi } logf(log.LevelInfo, "Wrote Docker config JSON to %s", cfgPath) oldDockerConfig := os.Getenv("DOCKER_CONFIG") - os.Setenv("DOCKER_CONFIG", magicDir.String()) - logf(log.LevelInfo, "Set DOCKER_CONFIG to %s", magicDir.String()) + _ = os.Setenv("DOCKER_CONFIG", magicDir.Path()) + newDockerConfig := os.Getenv("DOCKER_CONFIG") + logf(log.LevelInfo, "Set DOCKER_CONFIG to %s", newDockerConfig) cleanup := func() error { var cleanupErr error cleanupOnce.Do(func() {