Add support for RUN [""] in Dockerfiles for greater specificity in what is actually executed

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Upstream-commit: fd78128870b78c282b65976cfff100c4101569b1
Component: engine
This commit is contained in:
Tianon Gravi
2014-01-11 04:00:52 -07:00
parent 73f11d30c2
commit f19f8cb54e
2 changed files with 26 additions and 1 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ func (b *buildFile) CmdRun(args string) error {
if b.image == "" {
return fmt.Errorf("Please provide a source image with `from` prior to run")
}
config, _, _, err := ParseRun([]string{b.image, "/bin/sh", "-c", args}, nil)
config, _, _, err := ParseRun(append([]string{b.image}, b.buildCmdFromJson(args)...), nil)
if err != nil {
return err
}
@@ -223,6 +223,31 @@ run [ "$(cat /bar/withfile)" = "test2" ]
},
nil,
},
// JSON!
{
`
FROM {IMAGE}
RUN ["/bin/echo","hello","world"]
CMD ["/bin/true"]
ENTRYPOINT ["/bin/echo","your command -->"]
`,
nil,
nil,
},
{
`
FROM {IMAGE}
ADD test /test
RUN ["chmod","+x","/test"]
RUN ["/test"]
RUN [ "$(cat /testfile)" = 'test!' ]
`,
[][2]string{
{"test", "#!/bin/sh\necho 'test!' > /testfile"},
},
nil,
},
}
// FIXME: test building with 2 successive overlapping ADD commands