mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Move mounts into types.go
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
This commit is contained in:
parent
a949d39f19
commit
156987c118
3 changed files with 25 additions and 26 deletions
|
@ -37,23 +37,3 @@ type Network struct {
|
||||||
Gateway string `json:"gateway,omitempty"`
|
Gateway string `json:"gateway,omitempty"`
|
||||||
Mtu int `json:"mtu,omitempty"`
|
Mtu int `json:"mtu,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mounts []Mount
|
|
||||||
|
|
||||||
func (s Mounts) OfType(t string) Mounts {
|
|
||||||
out := Mounts{}
|
|
||||||
for _, m := range s {
|
|
||||||
if m.Type == t {
|
|
||||||
out = append(out, m)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
type Mount struct {
|
|
||||||
Type string `json:"type,omitempty"`
|
|
||||||
Source string `json:"source,omitempty"` // Source path, in the host namespace
|
|
||||||
Destination string `json:"destination,omitempty"` // Destination path, in the container
|
|
||||||
Writable bool `json:"writable,omitempty"`
|
|
||||||
Private bool `json:"private,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
|
@ -122,12 +122,9 @@ func setupBindmounts(rootfs string, bindMounts libcontainer.Mounts) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: this is crappy right now and should be cleaned up with a better way of handling system and
|
||||||
|
// standard bind mounts allowing them to be more dymanic
|
||||||
func newSystemMounts(rootfs, mountLabel string, mounts libcontainer.Mounts) []mount {
|
func newSystemMounts(rootfs, mountLabel string, mounts libcontainer.Mounts) []mount {
|
||||||
devMounts := []mount{
|
|
||||||
{source: "shm", path: filepath.Join(rootfs, "dev", "shm"), device: "tmpfs", flags: defaultMountFlags, data: label.FormatMountLabel("mode=1777,size=65536k", mountLabel)},
|
|
||||||
{source: "devpts", path: filepath.Join(rootfs, "dev", "pts"), device: "devpts", flags: syscall.MS_NOSUID | syscall.MS_NOEXEC, data: label.FormatMountLabel("newinstance,ptmxmode=0666,mode=620,gid=5", mountLabel)},
|
|
||||||
}
|
|
||||||
|
|
||||||
systemMounts := []mount{
|
systemMounts := []mount{
|
||||||
{source: "proc", path: filepath.Join(rootfs, "proc"), device: "proc", flags: defaultMountFlags},
|
{source: "proc", path: filepath.Join(rootfs, "proc"), device: "proc", flags: defaultMountFlags},
|
||||||
}
|
}
|
||||||
|
@ -135,7 +132,9 @@ func newSystemMounts(rootfs, mountLabel string, mounts libcontainer.Mounts) []mo
|
||||||
if len(mounts.OfType("devtmpfs")) == 1 {
|
if len(mounts.OfType("devtmpfs")) == 1 {
|
||||||
systemMounts = append(systemMounts, mount{source: "tmpfs", path: filepath.Join(rootfs, "dev"), device: "tmpfs", flags: syscall.MS_NOSUID | syscall.MS_STRICTATIME, data: "mode=755"})
|
systemMounts = append(systemMounts, mount{source: "tmpfs", path: filepath.Join(rootfs, "dev"), device: "tmpfs", flags: syscall.MS_NOSUID | syscall.MS_STRICTATIME, data: "mode=755"})
|
||||||
}
|
}
|
||||||
systemMounts = append(systemMounts, devMounts...)
|
systemMounts = append(systemMounts,
|
||||||
|
mount{source: "shm", path: filepath.Join(rootfs, "dev", "shm"), device: "tmpfs", flags: defaultMountFlags, data: label.FormatMountLabel("mode=1777,size=65536k", mountLabel)},
|
||||||
|
mount{source: "devpts", path: filepath.Join(rootfs, "dev", "pts"), device: "devpts", flags: syscall.MS_NOSUID | syscall.MS_NOEXEC, data: label.FormatMountLabel("newinstance,ptmxmode=0666,mode=620,gid=5", mountLabel)})
|
||||||
|
|
||||||
if len(mounts.OfType("sysfs")) == 1 {
|
if len(mounts.OfType("sysfs")) == 1 {
|
||||||
systemMounts = append(systemMounts, mount{source: "sysfs", path: filepath.Join(rootfs, "sys"), device: "sysfs", flags: defaultMountFlags})
|
systemMounts = append(systemMounts, mount{source: "sysfs", path: filepath.Join(rootfs, "sys"), device: "sysfs", flags: defaultMountFlags})
|
||||||
|
|
|
@ -11,6 +11,26 @@ var (
|
||||||
ErrUnsupported = errors.New("Unsupported method")
|
ErrUnsupported = errors.New("Unsupported method")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Mounts []Mount
|
||||||
|
|
||||||
|
func (s Mounts) OfType(t string) Mounts {
|
||||||
|
out := Mounts{}
|
||||||
|
for _, m := range s {
|
||||||
|
if m.Type == t {
|
||||||
|
out = append(out, m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
type Mount struct {
|
||||||
|
Type string `json:"type,omitempty"`
|
||||||
|
Source string `json:"source,omitempty"` // Source path, in the host namespace
|
||||||
|
Destination string `json:"destination,omitempty"` // Destination path, in the container
|
||||||
|
Writable bool `json:"writable,omitempty"`
|
||||||
|
Private bool `json:"private,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// namespaceList is used to convert the libcontainer types
|
// namespaceList is used to convert the libcontainer types
|
||||||
// into the names of the files located in /proc/<pid>/ns/* for
|
// into the names of the files located in /proc/<pid>/ns/* for
|
||||||
// each namespace
|
// each namespace
|
||||||
|
|
Loading…
Reference in a new issue