From 5b73f53dcfd3afb9b15795d4a84771661b3e270c Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Fri, 2 Jun 2017 22:36:21 +0100 Subject: [PATCH] Put tmp direcories under ~/.moby Docker4Mac won't bind mount default tmp dir into containers Signed-off-by: Justin Cormack --- cmd/moby/linuxkit.go | 2 +- cmd/moby/main.go | 5 +++++ cmd/moby/output.go | 14 ++++---------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/cmd/moby/linuxkit.go b/cmd/moby/linuxkit.go index 3808cec17..ac5be8780 100644 --- a/cmd/moby/linuxkit.go +++ b/cmd/moby/linuxkit.go @@ -90,7 +90,7 @@ func writeKernelInitrd(filename string, kernel []byte, initrd []byte, cmdline st func outputLinuxKit(format string, filename string, kernel []byte, initrd []byte, cmdline string, size int, hyperkit bool) error { log.Debugf("output linuxkit generated img: %s %s size %d", format, filename, size) - tmp, err := ioutil.TempDir("", "moby") + tmp, err := ioutil.TempDir(filepath.Join(MobyDir, "tmp"), "moby") if err != nil { return err } diff --git a/cmd/moby/main.go b/cmd/moby/main.go index f7e169863..e4bd2a245 100644 --- a/cmd/moby/main.go +++ b/cmd/moby/main.go @@ -97,6 +97,11 @@ func main() { log.Fatalf("Could not create config directory [%s]: %v", MobyDir, err) } + err = os.MkdirAll(filepath.Join(MobyDir, "tmp"), 0755) + if err != nil { + log.Fatalf("Could not create config tmp directory [%s]: %v", filepath.Join(MobyDir, "tmp"), err) + } + switch args[0] { case "build": build(args[1:]) diff --git a/cmd/moby/output.go b/cmd/moby/output.go index d1ca536d6..9979a812b 100644 --- a/cmd/moby/output.go +++ b/cmd/moby/output.go @@ -82,10 +82,11 @@ var outFuns = map[string]func(string, []byte, int, bool) error{ if err != nil { return fmt.Errorf("Error converting to initrd: %v", err) } - tmp, err := ioutil.TempDir("", "img-gz") + tmp, err := ioutil.TempDir(filepath.Join(MobyDir, "tmp"), "img-gz") if err != nil { return err } + defer os.RemoveAll(tmp) err = outputLinuxKit("raw", filepath.Join(tmp, "uncompressed.img"), kernel, initrd, cmdline, size, hyperkit) if err != nil { return fmt.Errorf("Error writing img-gz output: %v", err) @@ -112,10 +113,6 @@ var outFuns = map[string]func(string, []byte, int, bool) error{ if err != nil { return err } - err = os.RemoveAll(tmp) - if err != nil { - return err - } return nil }, "gcp-img": func(base string, image []byte, size int, hyperkit bool) error { @@ -125,10 +122,11 @@ var outFuns = map[string]func(string, []byte, int, bool) error{ if err != nil { return fmt.Errorf("Error converting to initrd: %v", err) } - tmp, err := ioutil.TempDir("", "gcp-img") + tmp, err := ioutil.TempDir(filepath.Join(MobyDir, "tmp"), "gcp-img") if err != nil { return err } + defer os.RemoveAll(tmp) err = outputLinuxKit("raw", filepath.Join(tmp, "disk.raw"), kernel, initrd, cmdline, size, hyperkit) if err != nil { return fmt.Errorf("Error writing gcp-img output: %v", err) @@ -173,10 +171,6 @@ var outFuns = map[string]func(string, []byte, int, bool) error{ if err != nil { return err } - err = os.RemoveAll(tmp) - if err != nil { - return err - } return nil }, "qcow2": func(base string, image []byte, size int, hyperkit bool) error {