65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
|
package integration
|
||
|
|
||
|
import (
|
||
|
"github.com/docker/libcontainer"
|
||
|
"github.com/docker/libcontainer/cgroups"
|
||
|
"github.com/docker/libcontainer/devices"
|
||
|
)
|
||
|
|
||
|
// newTemplateConfig returns a base template for running a container
|
||
|
//
|
||
|
// it uses a network strategy of just setting a loopback interface
|
||
|
// and the default setup for devices
|
||
|
func newTemplateConfig(rootfs string) *libcontainer.Config {
|
||
|
return &libcontainer.Config{
|
||
|
RootFs: rootfs,
|
||
|
Tty: false,
|
||
|
Capabilities: []string{
|
||
|
"CHOWN",
|
||
|
"DAC_OVERRIDE",
|
||
|
"FSETID",
|
||
|
"FOWNER",
|
||
|
"MKNOD",
|
||
|
"NET_RAW",
|
||
|
"SETGID",
|
||
|
"SETUID",
|
||
|
"SETFCAP",
|
||
|
"SETPCAP",
|
||
|
"NET_BIND_SERVICE",
|
||
|
"SYS_CHROOT",
|
||
|
"KILL",
|
||
|
"AUDIT_WRITE",
|
||
|
},
|
||
|
Namespaces: map[string]bool{
|
||
|
"NEWNS": true,
|
||
|
"NEWUTS": true,
|
||
|
"NEWIPC": true,
|
||
|
"NEWPID": true,
|
||
|
"NEWNET": true,
|
||
|
},
|
||
|
Cgroups: &cgroups.Cgroup{
|
||
|
Parent: "integration",
|
||
|
AllowAllDevices: false,
|
||
|
AllowedDevices: devices.DefaultAllowedDevices,
|
||
|
},
|
||
|
|
||
|
MountConfig: &libcontainer.MountConfig{
|
||
|
DeviceNodes: devices.DefaultAutoCreatedDevices,
|
||
|
},
|
||
|
Hostname: "integration",
|
||
|
Env: []string{
|
||
|
"HOME=/root",
|
||
|
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
||
|
"HOSTNAME=integration",
|
||
|
"TERM=xterm",
|
||
|
},
|
||
|
Networks: []*libcontainer.Network{
|
||
|
{
|
||
|
Type: "loopback",
|
||
|
Address: "127.0.0.1/0",
|
||
|
Gateway: "localhost",
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
}
|