mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #9512 from duglin/Issue9404
Make 'docker build' send non-err output to stdout
This commit is contained in:
commit
58ce0146e1
3 changed files with 36 additions and 1 deletions
|
@ -180,7 +180,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
|
||||||
// FIXME: ProgressReader shouldn't be this annoying to use
|
// FIXME: ProgressReader shouldn't be this annoying to use
|
||||||
if context != nil {
|
if context != nil {
|
||||||
sf := utils.NewStreamFormatter(false)
|
sf := utils.NewStreamFormatter(false)
|
||||||
body = utils.ProgressReader(context, 0, cli.err, sf, true, "", "Sending build context to Docker daemon")
|
body = utils.ProgressReader(context, 0, cli.out, sf, true, "", "Sending build context to Docker daemon")
|
||||||
}
|
}
|
||||||
// Send the build context
|
// Send the build context
|
||||||
v := &url.Values{}
|
v := &url.Values{}
|
||||||
|
|
|
@ -3523,3 +3523,19 @@ func TestBuildWithTabs(t *testing.T) {
|
||||||
}
|
}
|
||||||
logDone("build - with tabs")
|
logDone("build - with tabs")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBuildStderr(t *testing.T) {
|
||||||
|
// This test just makes sure that no non-error output goes
|
||||||
|
// to stderr
|
||||||
|
name := "testbuildstderr"
|
||||||
|
defer deleteImages(name)
|
||||||
|
_, _, stderr, err := buildImageWithStdoutStderr(name,
|
||||||
|
"FROM busybox\nRUN echo one", true)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if stderr != "" {
|
||||||
|
t.Fatal("Stderr should have been empty, instead its: %q", stderr)
|
||||||
|
}
|
||||||
|
logDone("build - testing stderr")
|
||||||
|
}
|
||||||
|
|
|
@ -596,6 +596,25 @@ func buildImageWithOut(name, dockerfile string, useCache bool) (string, string,
|
||||||
return id, out, nil
|
return id, out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func buildImageWithStdoutStderr(name, dockerfile string, useCache bool) (string, string, string, error) {
|
||||||
|
args := []string{"build", "-t", name}
|
||||||
|
if !useCache {
|
||||||
|
args = append(args, "--no-cache")
|
||||||
|
}
|
||||||
|
args = append(args, "-")
|
||||||
|
buildCmd := exec.Command(dockerBinary, args...)
|
||||||
|
buildCmd.Stdin = strings.NewReader(dockerfile)
|
||||||
|
stdout, stderr, exitCode, err := runCommandWithStdoutStderr(buildCmd)
|
||||||
|
if err != nil || exitCode != 0 {
|
||||||
|
return "", stdout, stderr, fmt.Errorf("failed to build the image: %s", stdout)
|
||||||
|
}
|
||||||
|
id, err := getIDByName(name)
|
||||||
|
if err != nil {
|
||||||
|
return "", stdout, stderr, err
|
||||||
|
}
|
||||||
|
return id, stdout, stderr, nil
|
||||||
|
}
|
||||||
|
|
||||||
func buildImage(name, dockerfile string, useCache bool) (string, error) {
|
func buildImage(name, dockerfile string, useCache bool) (string, error) {
|
||||||
id, _, err := buildImageWithOut(name, dockerfile, useCache)
|
id, _, err := buildImageWithOut(name, dockerfile, useCache)
|
||||||
return id, err
|
return id, err
|
||||||
|
|
Loading…
Reference in a new issue