From 52acd798f8ba5e8007992b60043d9a9fba794619 Mon Sep 17 00:00:00 2001 From: Yoan Blanc Date: Fri, 28 Feb 2020 14:23:45 +0100 Subject: [PATCH] run: unset any HOME variable after USER ran Running USER didn't reset HOME which had to be explicitly set. Closes #1082 Signed-off-by: Yoan Blanc --- pkg/commands/run.go | 1 + pkg/commands/user.go | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/commands/run.go b/pkg/commands/run.go index 9da6ddeeb..46cade516 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -77,6 +77,7 @@ func (r *RunCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bui } cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uid, Gid: gid} } + cmd.Env = addDefaultHOME(userStr, replacementEnvs) if err := cmd.Start(); err != nil { diff --git a/pkg/commands/user.go b/pkg/commands/user.go index 410bb7840..2b8581af9 100644 --- a/pkg/commands/user.go +++ b/pkg/commands/user.go @@ -20,6 +20,7 @@ import ( "fmt" "strings" + "github.com/GoogleContainerTools/kaniko/pkg/constants" "github.com/GoogleContainerTools/kaniko/pkg/dockerfile" "github.com/GoogleContainerTools/kaniko/pkg/util" v1 "github.com/google/go-containerregistry/pkg/v1" @@ -55,8 +56,19 @@ func (r *UserCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bu } userStr = userStr + ":" + groupStr } - + config.User = userStr + + // Remove any HOME environment variable previously set. + env := make([]string, 0, len(config.Env)) + for _, v := range config.Env { + if strings.HasPrefix(v, constants.HOME+"=") { + continue + } + env = append(env, v) + } + config.Env = env + return nil }