Skip to content

Commit b96a0c7

Browse files
committed
Add daemon options required by buildkit tests
Signed-off-by: Sam Whited <sam@samwhited.com>
1 parent 76dbd88 commit b96a0c7

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

testutil/daemon/daemon.go

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ type nopLog struct{}
3939

4040
func (nopLog) Logf(string, ...interface{}) {}
4141

42-
const defaultDockerdBinary = "dockerd"
43-
const containerdSocket = "/var/run/docker/containerd/containerd.sock"
42+
const (
43+
defaultDockerdBinary = "dockerd"
44+
defaultContainerdSocket = "/var/run/docker/containerd/containerd.sock"
45+
)
4446

4547
var errDaemonNotStarted = errors.New("daemon not started")
4648

@@ -75,6 +77,7 @@ type Daemon struct {
7577
log LogT
7678
pidFile string
7779
args []string
80+
containerdSocket string
7881

7982
// swarm related field
8083
swarmListenAddr string
@@ -120,11 +123,12 @@ func NewDaemon(workingDir string, ops ...Option) (*Daemon, error) {
120123
storageDriver: storageDriver,
121124
userlandProxy: userlandProxy,
122125
// dxr stands for docker-execroot (shortened for avoiding unix(7) path length limitation)
123-
execRoot: filepath.Join(os.TempDir(), "dxr", id),
124-
dockerdBinary: defaultDockerdBinary,
125-
swarmListenAddr: defaultSwarmListenAddr,
126-
SwarmPort: DefaultSwarmPort,
127-
log: nopLog{},
126+
execRoot: filepath.Join(os.TempDir(), "dxr", id),
127+
dockerdBinary: defaultDockerdBinary,
128+
swarmListenAddr: defaultSwarmListenAddr,
129+
SwarmPort: DefaultSwarmPort,
130+
log: nopLog{},
131+
containerdSocket: defaultContainerdSocket,
128132
}
129133

130134
for _, op := range ops {
@@ -252,17 +256,20 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
252256
d.pidFile = filepath.Join(d.Folder, "docker.pid")
253257
}
254258

255-
d.args = append(d.GlobalFlags,
256-
"--containerd", containerdSocket,
257-
"--data-root", d.Root,
259+
d.args = append(d.GlobalFlags, "--data-root", d.Root)
260+
if d.containerdSocket != "" {
261+
d.args = append(d.args, "--containerd", d.containerdSocket)
262+
}
263+
d.args = append(d.args,
258264
"--exec-root", d.execRoot,
259265
"--pidfile", d.pidFile,
260266
fmt.Sprintf("--userland-proxy=%t", d.userlandProxy),
261267
"--containerd-namespace", d.id,
262268
"--containerd-plugins-namespace", d.id+"p",
263269
)
270+
264271
if d.defaultCgroupNamespaceMode != "" {
265-
d.args = append(d.args, []string{"--default-cgroupns-mode", d.defaultCgroupNamespaceMode}...)
272+
d.args = append(d.args, "--default-cgroupns-mode", d.defaultCgroupNamespaceMode)
266273
}
267274
if d.experimental {
268275
d.args = append(d.args, "--experimental")
@@ -271,10 +278,10 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
271278
d.args = append(d.args, "--init")
272279
}
273280
if !(d.UseDefaultHost || d.UseDefaultTLSHost) {
274-
d.args = append(d.args, []string{"--host", d.Sock()}...)
281+
d.args = append(d.args, "--host", d.Sock())
275282
}
276283
if root := os.Getenv("DOCKER_REMAP_ROOT"); root != "" {
277-
d.args = append(d.args, []string{"--userns-remap", root}...)
284+
d.args = append(d.args, "--userns-remap", root)
278285
}
279286

280287
// If we don't explicitly set the log-level or debug flag(-D) then

testutil/daemon/ops.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ import (
77
// Option is used to configure a daemon.
88
type Option func(*Daemon)
99

10+
// WithContainerdSocket sets the --containerd option on the daemon.
11+
// Use an empty string to remove the option.
12+
//
13+
// If unset the --containerd option will be used with a default value.
14+
func WithContainerdSocket(socket string) Option {
15+
return func(d *Daemon) {
16+
d.containerdSocket = socket
17+
}
18+
}
19+
1020
// WithDefaultCgroupNamespaceMode sets the default cgroup namespace mode for the daemon
1121
func WithDefaultCgroupNamespaceMode(mode string) Option {
1222
return func(d *Daemon) {

0 commit comments

Comments
 (0)