From 9f2c67332f48c0050846ac86e01cb5dadbd1d8fe Mon Sep 17 00:00:00 2001 From: Dan Walsh Date: Wed, 11 Mar 2015 11:12:55 -0400 Subject: [PATCH] Mounting a tmpfs directory needs to inherit directory permissions from base Docker-DCO-1.1-Signed-off-by: Dan Walsh (github: rhatdan) --- rootfs_linux.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/rootfs_linux.go b/rootfs_linux.go index 42d7d17cc..947bfdb20 100644 --- a/rootfs_linux.go +++ b/rootfs_linux.go @@ -100,7 +100,23 @@ func mount(m *configs.Mount, rootfs, mountLabel string) error { return err } return syscall.Mount(m.Source, dest, m.Device, uintptr(m.Flags), "") - case "tmpfs", "mqueue", "devpts", "sysfs": + case "tmpfs": + stat, err := os.Stat(dest) + if err != nil { + if err := os.MkdirAll(dest, 0755); err != nil && !os.IsExist(err) { + return err + } + } + if err := syscall.Mount(m.Source, dest, m.Device, uintptr(m.Flags), data); err != nil { + return err + } + if stat != nil { + if err = os.Chmod(dest, stat.Mode()); err != nil { + return err + } + } + return nil + case "mqueue", "devpts", "sysfs": if err := os.MkdirAll(dest, 0755); err != nil && !os.IsExist(err) { return err }