mirror of
https://github.com/docker/cli.git
synced 2026-01-13 18:22:35 +03:00
daemon: reorder mounts before setting them
Signed-off-by: Antonio Murdaca <runcom@redhat.com> Upstream-commit: 6a8ea46c67c3594118c7da41b1cebe062aff3f6a Component: engine
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@@ -635,13 +636,14 @@ func (daemon *Daemon) createSpec(c *container.Container) (*libcontainerd.Spec, e
|
||||
return nil, err
|
||||
}
|
||||
|
||||
mounts, err := daemon.setupMounts(c)
|
||||
ms, err := daemon.setupMounts(c)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mounts = append(mounts, c.IpcMounts()...)
|
||||
mounts = append(mounts, c.TmpfsMounts()...)
|
||||
if err := setMounts(daemon, &s, c, mounts); err != nil {
|
||||
ms = append(ms, c.IpcMounts()...)
|
||||
ms = append(ms, c.TmpfsMounts()...)
|
||||
sort.Sort(mounts(ms))
|
||||
if err := setMounts(daemon, &s, c, ms); err != nil {
|
||||
return nil, fmt.Errorf("linux mounts: %v", err)
|
||||
}
|
||||
|
||||
|
||||
@@ -746,6 +746,14 @@ func (s *DockerSuite) TestRunWithShmSize(c *check.C) {
|
||||
c.Assert(shmSize, check.Equals, "1073741824")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestRunTmpfsMountsEnsureOrdered(c *check.C) {
|
||||
tmpFile, err := ioutil.TempFile("", "test")
|
||||
c.Assert(err, check.IsNil)
|
||||
defer tmpFile.Close()
|
||||
out, _ := dockerCmd(c, "run", "--tmpfs", "/run", "-v", tmpFile.Name()+":/run/test", "busybox", "ls", "/run")
|
||||
c.Assert(out, checker.Contains, "test")
|
||||
}
|
||||
|
||||
func (s *DockerSuite) TestRunTmpfsMounts(c *check.C) {
|
||||
// TODO Windows (Post TP5): This test cannot run on a Windows daemon as
|
||||
// Windows does not support tmpfs mounts.
|
||||
@@ -839,10 +847,8 @@ func (s *DockerSuite) TestRunSeccompProfileDenyChmod(c *check.C) {
|
||||
]
|
||||
}`
|
||||
tmpFile, err := ioutil.TempFile("", "profile.json")
|
||||
c.Assert(err, check.IsNil)
|
||||
defer tmpFile.Close()
|
||||
if err != nil {
|
||||
c.Fatal(err)
|
||||
}
|
||||
|
||||
if _, err := tmpFile.Write([]byte(jsonData)); err != nil {
|
||||
c.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user