Prechádzať zdrojové kódy

Merge pull request #19688 from crosbymichael/tmpfs-tar

Remove tar copy-up for tmpfs mounts
Arnaud Porterie 9 rokov pred
rodič
commit
3a70ab3a2c

+ 0 - 3
daemon/execdriver/native/create.go

@@ -437,7 +437,6 @@ func (d *Driver) setupMounts(container *configs.Config, c *execdriver.Command) e
 				flags = syscall.MS_NOEXEC | syscall.MS_NOSUID | syscall.MS_NODEV
 				err   error
 			)
-			fulldest := filepath.Join(c.Rootfs, m.Destination)
 			if m.Data != "" {
 				flags, data, err = mount.ParseTmpfsOptions(m.Data)
 				if err != nil {
@@ -450,8 +449,6 @@ func (d *Driver) setupMounts(container *configs.Config, c *execdriver.Command) e
 				Data:             data,
 				Device:           "tmpfs",
 				Flags:            flags,
-				PremountCmds:     genTmpfsPremountCmd(c.TmpDir, fulldest, m.Destination),
-				PostmountCmds:    genTmpfsPostmountCmd(c.TmpDir, fulldest, m.Destination),
 				PropagationFlags: []int{mountPropagationMap[volume.DefaultPropagationMode]},
 			})
 			continue

+ 0 - 56
daemon/execdriver/native/tmpfs.go

@@ -1,56 +0,0 @@
-package native
-
-import (
-	"fmt"
-	"os"
-	"os/exec"
-	"strings"
-
-	"github.com/Sirupsen/logrus"
-	"github.com/opencontainers/runc/libcontainer/configs"
-)
-
-func genTmpfsPremountCmd(tmpDir string, fullDest string, dest string) []configs.Command {
-	var premount []configs.Command
-	tarPath, err := exec.LookPath("tar")
-	if err != nil {
-		logrus.Warn("tar command is not available for tmpfs mount: %s", err)
-		return premount
-	}
-	if _, err = exec.LookPath("rm"); err != nil {
-		logrus.Warn("rm command is not available for tmpfs mount: %s", err)
-		return premount
-	}
-	tarFile := fmt.Sprintf("%s/%s.tar", tmpDir, strings.Replace(dest, "/", "_", -1))
-	if _, err := os.Stat(fullDest); err == nil {
-		premount = append(premount, configs.Command{
-			Path: tarPath,
-			Args: []string{"-cf", tarFile, "-C", fullDest, "."},
-		})
-	}
-	return premount
-}
-
-func genTmpfsPostmountCmd(tmpDir string, fullDest string, dest string) []configs.Command {
-	var postmount []configs.Command
-	tarPath, err := exec.LookPath("tar")
-	if err != nil {
-		return postmount
-	}
-	rmPath, err := exec.LookPath("rm")
-	if err != nil {
-		return postmount
-	}
-	if _, err := os.Stat(fullDest); os.IsNotExist(err) {
-		return postmount
-	}
-	tarFile := fmt.Sprintf("%s/%s.tar", tmpDir, strings.Replace(dest, "/", "_", -1))
-	postmount = append(postmount, configs.Command{
-		Path: tarPath,
-		Args: []string{"-xf", tarFile, "-C", fullDest, "."},
-	})
-	return append(postmount, configs.Command{
-		Path: rmPath,
-		Args: []string{"-f", tarFile},
-	})
-}

+ 1 - 4
man/docker-create.1.md

@@ -319,10 +319,7 @@ unit, `b` is used. Set LIMIT to `-1` to enable unlimited swap.
 
    $ docker run -d --tmpfs /tmp:rw,size=787448k,mode=1777 my_image
 
-   This command mounts a `tmpfs` at `/tmp` within the container. The mount copies
-the underlying content of `my_image` into `/tmp`. For example if there was a
-directory `/tmp/content` in the base image, docker will copy this directory and
-all of its content on top of the tmpfs mounted on `/tmp`.  The supported mount
+   This command mounts a `tmpfs` at `/tmp` within the container.  The supported mount
 options are the same as the Linux default `mount` flags. If you do not specify
 any options, the systems uses the following options:
 `rw,noexec,nosuid,nodev,size=65536k`.

+ 1 - 4
man/docker-run.1.md

@@ -490,10 +490,7 @@ standard input.
 
    $ docker run -d --tmpfs /tmp:rw,size=787448k,mode=1777 my_image
 
-   This command mounts a `tmpfs` at `/tmp` within the container. The mount copies
-the underlying content of `my_image` into `/tmp`. For example if there was a
-directory `/tmp/content` in the base image, docker will copy this directory and
-all of its content on top of the tmpfs mounted on `/tmp`.  The supported mount
+   This command mounts a `tmpfs` at `/tmp` within the container.  The supported mount
 options are the same as the Linux default `mount` flags. If you do not specify
 any options, the systems uses the following options:
 `rw,noexec,nosuid,nodev,size=65536k`.