builder: Fix setting command with custom shell
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
parent
2ce39de0c8
commit
a1fa59ea12
2 changed files with 17 additions and 2 deletions
|
@ -827,7 +827,7 @@ func errTooManyArguments(command string) error {
|
|||
// shell-form of RUN, ENTRYPOINT and CMD instructions
|
||||
func getShell(c *container.Config) []string {
|
||||
if 0 == len(c.Shell) {
|
||||
return defaultShell[:]
|
||||
return append([]string{}, defaultShell[:]...)
|
||||
}
|
||||
return c.Shell[:]
|
||||
return append([]string{}, c.Shell[:]...)
|
||||
}
|
||||
|
|
|
@ -6039,3 +6039,18 @@ func (s *DockerSuite) TestBuildLineErrorWithComments(c *check.C) {
|
|||
Err: "Dockerfile parse error line 5: Unknown instruction: NOINSTRUCTION",
|
||||
})
|
||||
}
|
||||
|
||||
// #31957
|
||||
func (s *DockerSuite) TestBuildSetCommandWithDefinedShell(c *check.C) {
|
||||
buildImageSuccessfully(c, "build1", build.WithDockerfile(`
|
||||
FROM busybox
|
||||
SHELL ["/bin/sh", "-c"]
|
||||
`))
|
||||
buildImageSuccessfully(c, "build2", build.WithDockerfile(`
|
||||
FROM build1
|
||||
CMD echo foo
|
||||
`))
|
||||
|
||||
out, _ := dockerCmd(c, "inspect", "--format", "{{ json .Config.Cmd }}", "build2")
|
||||
c.Assert(strings.TrimSpace(out), checker.Equals, `["/bin/sh","-c","echo foo"]`)
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue