mirror of
https://github.com/clearlinux/docker.git
synced 2026-09-06 05:31:47 +00:00
Make 'docker build' send non-err output to stdout
Right now 'docker build' will send: Sending build context to Docker daemon to stderr, instead of stdout. This PR fixes that. I looked in the rest of api/client/commands.go for other cases that might do this and only one jumped out at me: https://github.com/docker/docker/blob/master/api/client/commands.go#L2202 but I think if I changed that to go to stdout then it'll mess people up who are expecting just the container ID to be printed to the screen and there is no --quiet type of flag we can check. Closes #9404 Signed-off-by: Doug Davis <dug@us.ibm.com>
This commit is contained in:
@@ -596,6 +596,25 @@ func buildImageWithOut(name, dockerfile string, useCache bool) (string, string,
|
||||
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) {
|
||||
id, _, err := buildImageWithOut(name, dockerfile, useCache)
|
||||
return id, err
|
||||
|
||||
Reference in New Issue
Block a user