Merge pull request #1223 from sileht/fix-workdir-relative

feat: ensure relative WorkingDir work
This commit is contained in:
Tejal Desai 2020-05-04 10:29:51 -07:00 committed by GitHub
commit b62b3779fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 3 deletions

View File

@ -1,6 +1,6 @@
FROM debian:9.11
COPY context/foo foo
WORKDIR /test
WORKDIR test
# Test that this will be appended on to the previous command, to create /test/workdir
WORKDIR workdir
COPY context/foo ./currentfoo

View File

@ -48,7 +48,11 @@ func (w *WorkdirCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile
if filepath.IsAbs(resolvedWorkingDir) {
config.WorkingDir = resolvedWorkingDir
} else {
config.WorkingDir = filepath.Join(config.WorkingDir, resolvedWorkingDir)
if config.WorkingDir != "" {
config.WorkingDir = filepath.Join(config.WorkingDir, resolvedWorkingDir)
} else {
config.WorkingDir = filepath.Join("/", resolvedWorkingDir)
}
}
logrus.Infof("Changed working directory to %s", config.WorkingDir)

View File

@ -35,6 +35,11 @@ var workdirTests = []struct {
expectedPath string
snapshotFiles []string
}{
{
path: "a",
expectedPath: "/a",
snapshotFiles: []string{"/a"},
},
{
path: "/a",
expectedPath: "/a",
@ -92,7 +97,7 @@ func TestWorkdirCommand(t *testing.T) {
}()
cfg := &v1.Config{
WorkingDir: "/",
WorkingDir: "",
Env: []string{
"path=usr/",
"home=/root",