Browse code

pkg/chrootarchive: provide TMPDIR for ApplyLayer

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

unclejack authored on 2014/11/19 06:33:13
Showing 1 changed files
... ...
@@ -3,6 +3,7 @@ package chrootarchive
3 3
 import (
4 4
 	"flag"
5 5
 	"fmt"
6
+	"io/ioutil"
6 7
 	"os"
7 8
 	"runtime"
8 9
 	"syscall"
... ...
@@ -21,9 +22,16 @@ func applyLayer() {
21 21
 	if err := syscall.Chdir("/"); err != nil {
22 22
 		fatal(err)
23 23
 	}
24
+	tmpDir, err := ioutil.TempDir("/", "temp-docker-extract")
25
+	if err != nil {
26
+		fatal(err)
27
+	}
28
+	os.Setenv("TMPDIR", tmpDir)
24 29
 	if err := archive.ApplyLayer("/", os.Stdin); err != nil {
30
+		os.RemoveAll(tmpDir)
25 31
 		fatal(err)
26 32
 	}
33
+	os.RemoveAll(tmpDir)
27 34
 	os.Exit(0)
28 35
 }
29 36