From 966cd034992917087338485a0892d25c9e08cd2e Mon Sep 17 00:00:00 2001 From: aca Date: Sat, 4 Jul 2020 01:14:35 +0900 Subject: [PATCH] Set correct PATH for exec form Fixes #1304 --- pkg/commands/run.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/commands/run.go b/pkg/commands/run.go index b99461eaa..23d7ee24f 100644 --- a/pkg/commands/run.go +++ b/pkg/commands/run.go @@ -63,6 +63,21 @@ func runCommandInExec(config *v1.Config, buildArgs *dockerfile.BuildArgs, cmdRun newCommand = append(shell, strings.Join(cmdRun.CmdLine, " ")) } else { newCommand = cmdRun.CmdLine + // Find and set absolute path of executable by setting PATH temporary + replacementEnvs := buildArgs.ReplacementEnvs(config.Env) + for _, v := range replacementEnvs{ + entry := strings.SplitN(v, "=", 2) + if entry[0] != "PATH" { + continue + } + oldPath := os.Getenv("PATH") + os.Setenv("PATH", entry[1]) + path, err := exec.LookPath(newCommand[0]) + if err == nil { + newCommand[0] = path + } + os.Setenv("PATH", oldPath) + } } logrus.Infof("cmd: %s", newCommand[0])