From c3e00e26088ab2e20fbcb6c80ab5681ee0bcce0e Mon Sep 17 00:00:00 2001 From: Brad Rydzewski Date: Tue, 30 Dec 2014 13:09:05 -0800 Subject: [PATCH] improved error messaging for failed build due to Docker errors --- shared/build/build.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/shared/build/build.go b/shared/build/build.go index 2226cc4f..9fc28420 100644 --- a/shared/build/build.go +++ b/shared/build/build.go @@ -238,7 +238,7 @@ func (b *Builder) setup() error { if _, err := b.dockerClient.Images.Inspect(b.Build.Image); err == docker.ErrNotFound { // download the image if it doesn't exist if err := b.dockerClient.Images.Pull(b.Build.Image); err != nil { - return err + return fmt.Errorf("Error: Unable to pull image %s. %s", b.Build.Image, err) } } else if err != nil { log.Errf("failed to inspect image %s", b.Build.Image) @@ -392,7 +392,7 @@ func (b *Builder) run() error { // create the container from the image run, err := b.dockerClient.Containers.Create(&conf) if err != nil { - return err + return fmt.Errorf("Error: Failed to create build container. %s", err) } // cache instance of docker.Run @@ -407,7 +407,7 @@ func (b *Builder) run() error { if err := b.dockerClient.Containers.Start(run.ID, &host); err != nil { b.BuildState.ExitCode = 1 b.BuildState.Finished = time.Now().UTC().Unix() - return err + return fmt.Errorf("Error: Failed to start build container. %s", err) } // wait for the container to stop @@ -415,7 +415,7 @@ func (b *Builder) run() error { if err != nil { b.BuildState.ExitCode = 1 b.BuildState.Finished = time.Now().UTC().Unix() - return err + return fmt.Errorf("Error: Failed to wait for build container. %s", err) } // set completion time @@ -503,7 +503,9 @@ func (b *Builder) writeBuildScript(dir string) error { f.WriteHost(mapping) } - f.WriteFile("$HOME/.ssh/id_rsa", b.Key, 600) + if len(b.Key) != 0 { + f.WriteFile("$HOME/.ssh/id_rsa", b.Key, 600) + } // if the repository is remote then we should // add the commands to the build script to