I am having a classic "works in local, breaks in CI" situation. I am trying to mount the docker daemon to a container. I created a repro.
package main
import (
"dagger/testdaemon/internal/dagger"
)
type Testdaemon struct{}
// Returns a container that echoes whatever string argument is provided
func (m *Testdaemon) Daemon() *dagger.Container {
dockerdArgs := []string{
"dockerd",
"--log-level=error",
"--host=tcp://0.0.0.0:2375",
"--tls=false",
}
dockerPort := 2375
daemon := dag.Container().From("docker:28-dind").
WithExposedPort(dockerPort).
WithEnvVariable("TINI_SUBREAPER", "true").
AsService(dagger.ContainerAsServiceOpts{
Args: dockerdArgs,
InsecureRootCapabilities: true,
})
cli := dag.Container().From("docker:cli").
WithServiceBinding("dockerd", daemon).
WithEnvVariable("DOCKER_HOST", "dockerd:2375").
WithExec([]string{"docker", "version"}).
WithExec([]string{"docker", "ps"})
return cli
}