a7acfffea6
The files in an image created by a commit should have the right uid and gid set Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
137 lines
3.2 KiB
Go
137 lines
3.2 KiB
Go
package daemon
|
|
|
|
import (
|
|
"os/user"
|
|
|
|
"github.com/docker/docker/testutil/environment"
|
|
)
|
|
|
|
// Option is used to configure a daemon.
|
|
type Option func(*Daemon)
|
|
|
|
// WithContainerdSocket sets the --containerd option on the daemon.
|
|
// Use an empty string to remove the option.
|
|
//
|
|
// If unset the --containerd option will be used with a default value.
|
|
func WithContainerdSocket(socket string) Option {
|
|
return func(d *Daemon) {
|
|
d.containerdSocket = socket
|
|
}
|
|
}
|
|
|
|
func WithUserNsRemap(remap string) Option {
|
|
return func(d *Daemon) {
|
|
d.usernsRemap = remap
|
|
}
|
|
}
|
|
|
|
// WithDefaultCgroupNamespaceMode sets the default cgroup namespace mode for the daemon
|
|
func WithDefaultCgroupNamespaceMode(mode string) Option {
|
|
return func(d *Daemon) {
|
|
d.defaultCgroupNamespaceMode = mode
|
|
}
|
|
}
|
|
|
|
// WithTestLogger causes the daemon to log certain actions to the provided test.
|
|
func WithTestLogger(t LogT) Option {
|
|
return func(d *Daemon) {
|
|
d.log = t
|
|
}
|
|
}
|
|
|
|
// WithExperimental sets the daemon in experimental mode
|
|
func WithExperimental() Option {
|
|
return func(d *Daemon) {
|
|
d.experimental = true
|
|
}
|
|
}
|
|
|
|
// WithInit sets the daemon init
|
|
func WithInit() Option {
|
|
return func(d *Daemon) {
|
|
d.init = true
|
|
}
|
|
}
|
|
|
|
// WithDockerdBinary sets the dockerd binary to the specified one
|
|
func WithDockerdBinary(dockerdBinary string) Option {
|
|
return func(d *Daemon) {
|
|
d.dockerdBinary = dockerdBinary
|
|
}
|
|
}
|
|
|
|
// WithSwarmPort sets the swarm port to use for swarm mode
|
|
func WithSwarmPort(port int) Option {
|
|
return func(d *Daemon) {
|
|
d.SwarmPort = port
|
|
}
|
|
}
|
|
|
|
// WithSwarmListenAddr sets the swarm listen addr to use for swarm mode
|
|
func WithSwarmListenAddr(listenAddr string) Option {
|
|
return func(d *Daemon) {
|
|
d.swarmListenAddr = listenAddr
|
|
}
|
|
}
|
|
|
|
// WithSwarmDefaultAddrPool sets the swarm default address pool to use for swarm mode
|
|
func WithSwarmDefaultAddrPool(defaultAddrPool []string) Option {
|
|
return func(d *Daemon) {
|
|
d.DefaultAddrPool = defaultAddrPool
|
|
}
|
|
}
|
|
|
|
// WithSwarmDefaultAddrPoolSubnetSize sets the subnet length mask of swarm default address pool to use for swarm mode
|
|
func WithSwarmDefaultAddrPoolSubnetSize(subnetSize uint32) Option {
|
|
return func(d *Daemon) {
|
|
d.SubnetSize = subnetSize
|
|
}
|
|
}
|
|
|
|
// WithSwarmDataPathPort sets the swarm datapath port to use for swarm mode
|
|
func WithSwarmDataPathPort(datapathPort uint32) Option {
|
|
return func(d *Daemon) {
|
|
d.DataPathPort = datapathPort
|
|
}
|
|
}
|
|
|
|
// WithEnvironment sets options from testutil/environment.Execution struct
|
|
func WithEnvironment(e environment.Execution) Option {
|
|
return func(d *Daemon) {
|
|
if e.DaemonInfo.ExperimentalBuild {
|
|
d.experimental = true
|
|
}
|
|
}
|
|
}
|
|
|
|
// WithStorageDriver sets store driver option
|
|
func WithStorageDriver(driver string) Option {
|
|
return func(d *Daemon) {
|
|
d.storageDriver = driver
|
|
}
|
|
}
|
|
|
|
// WithRootlessUser sets the daemon to be rootless
|
|
func WithRootlessUser(username string) Option {
|
|
return func(d *Daemon) {
|
|
u, err := user.Lookup(username)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
d.rootlessUser = u
|
|
}
|
|
}
|
|
|
|
// WithOOMScoreAdjust sets OOM score for the daemon
|
|
func WithOOMScoreAdjust(score int) Option {
|
|
return func(d *Daemon) {
|
|
d.OOMScoreAdjust = score
|
|
}
|
|
}
|
|
|
|
// WithEnvVars sets additional environment variables for the daemon
|
|
func WithEnvVars(vars ...string) Option {
|
|
return func(d *Daemon) {
|
|
d.extraEnv = append(d.extraEnv, vars...)
|
|
}
|
|
}
|