mirror of https://github.com/docker/docs.git
Merge pull request #4942 from vieux/cleanup_dev_libcontainer
remove setupDev from libcontainer
This commit is contained in:
commit
9cf89f8542
|
@ -64,3 +64,28 @@ func TestDiffEnsureDockerinitFilesAreIgnored(t *testing.T) {
|
||||||
|
|
||||||
logDone("diff - check if ignored files show up in diff")
|
logDone("diff - check if ignored files show up in diff")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDiffEnsureOnlyKmsgAndPtmx(t *testing.T) {
|
||||||
|
runCmd := exec.Command(dockerBinary, "run", "-d", "busybox", "sleep 0")
|
||||||
|
cid, _, err := runCommandWithOutput(runCmd)
|
||||||
|
errorOut(err, t, fmt.Sprintf("%s", err))
|
||||||
|
cleanCID := stripTrailingCharacters(cid)
|
||||||
|
|
||||||
|
diffCmd := exec.Command(dockerBinary, "diff", cleanCID)
|
||||||
|
out, _, err := runCommandWithOutput(diffCmd)
|
||||||
|
errorOut(err, t, fmt.Sprintf("failed to run diff: %v %v", out, err))
|
||||||
|
go deleteContainer(cleanCID)
|
||||||
|
|
||||||
|
expected := map[string]bool{
|
||||||
|
"C /dev": true,
|
||||||
|
"A /dev/full": true, // busybox
|
||||||
|
"C /dev/ptmx": true, // libcontainer
|
||||||
|
"A /dev/kmsg": true, // lxc
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, line := range strings.Split(out, "\n") {
|
||||||
|
if line != "" && !expected[line] {
|
||||||
|
t.Errorf("'%s' is shown in the diff but shouldn't", line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -57,9 +57,6 @@ func setupNewMountNamespace(rootfs string, bindMounts []libcontainer.Mount, cons
|
||||||
}
|
}
|
||||||
// In non-privileged mode, this fails. Discard the error.
|
// In non-privileged mode, this fails. Discard the error.
|
||||||
setupLoopbackDevices(rootfs)
|
setupLoopbackDevices(rootfs)
|
||||||
if err := setupDev(rootfs); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := setupPtmx(rootfs, console, mountLabel); err != nil {
|
if err := setupPtmx(rootfs, console, mountLabel); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -173,30 +170,6 @@ func copyDevNode(rootfs, node string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// setupDev symlinks the current processes pipes into the
|
|
||||||
// appropriate destination on the containers rootfs
|
|
||||||
func setupDev(rootfs string) error {
|
|
||||||
for _, link := range []struct {
|
|
||||||
from string
|
|
||||||
to string
|
|
||||||
}{
|
|
||||||
{"/proc/kcore", "/dev/core"},
|
|
||||||
{"/proc/self/fd", "/dev/fd"},
|
|
||||||
{"/proc/self/fd/0", "/dev/stdin"},
|
|
||||||
{"/proc/self/fd/1", "/dev/stdout"},
|
|
||||||
{"/proc/self/fd/2", "/dev/stderr"},
|
|
||||||
} {
|
|
||||||
dest := filepath.Join(rootfs, link.to)
|
|
||||||
if err := os.Remove(dest); err != nil && !os.IsNotExist(err) {
|
|
||||||
return fmt.Errorf("remove %s %s", dest, err)
|
|
||||||
}
|
|
||||||
if err := os.Symlink(link.from, dest); err != nil {
|
|
||||||
return fmt.Errorf("symlink %s %s", dest, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// setupConsole ensures that the container has a proper /dev/console setup
|
// setupConsole ensures that the container has a proper /dev/console setup
|
||||||
func setupConsole(rootfs, console string, mountLabel string) error {
|
func setupConsole(rootfs, console string, mountLabel string) error {
|
||||||
oldMask := system.Umask(0000)
|
oldMask := system.Umask(0000)
|
||||||
|
|
Loading…
Reference in New Issue