123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- 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...)
- }
- }
|