build: ensure temporary folder is removed in error case

Signed-off-by: Tibor Vass <tibor@docker.com>
This commit is contained in:
Tibor Vass 2018-06-13 18:25:22 +00:00
parent 6c60bb4436
commit 00792d1704
1 changed files with 7 additions and 2 deletions

View File

@ -100,11 +100,16 @@ func DetectArchiveReader(input io.ReadCloser) (rc io.ReadCloser, isArchive bool,
// WriteTempDockerfile writes a Dockerfile stream to a temporary file with a
// name specified by DefaultDockerfileName and returns the path to the
// temporary directory containing the Dockerfile.
func WriteTempDockerfile(rc io.ReadCloser) (string, error) {
dockerfileDir, err := ioutil.TempDir("", "docker-build-tempdockerfile-")
func WriteTempDockerfile(rc io.ReadCloser) (dockerfileDir string, err error) {
dockerfileDir, err = ioutil.TempDir("", "docker-build-tempdockerfile-")
if err != nil {
return "", errors.Errorf("unable to create temporary context directory: %v", err)
}
defer func() {
if err != nil {
os.RemoveAll(dockerfileDir)
}
}()
f, err := os.Create(filepath.Join(dockerfileDir, DefaultDockerfileName))
if err != nil {