"os/exec"
"time"
+ dockercontainer "github.com/docker/docker/api/types/container"
. "gopkg.in/check.v1"
)
c.Assert(err, IsNil)
}
}
+
+var _ = Suite(&dockerStubSuite{})
+
+// dockerStubSuite tests don't really connect to the docker service,
+// so we can run them even if docker is not installed.
+type dockerStubSuite struct{}
+
+func (s *dockerStubSuite) TestDockerContainerConfig(c *C) {
+ e, err := newDockerExecutor("zzzzz-zzzzz-zzzzzzzzzzzzzzz", c.Logf, time.Second/2)
+ c.Assert(err, IsNil)
+ cfg, hostCfg := e.config(containerSpec{
+ VCPUs: 4,
+ RAM: 123123123,
+ WorkingDir: "/WorkingDir",
+ Env: map[string]string{"FOO": "bar"},
+ BindMounts: map[string]bindmount{"/mnt": {HostPath: "/hostpath", ReadOnly: true}},
+ EnableNetwork: false,
+ CUDADeviceCount: 3,
+ })
+ c.Check(cfg.WorkingDir, Equals, "/WorkingDir")
+ c.Check(cfg.Env, DeepEquals, []string{"FOO=bar"})
+ c.Check(hostCfg.NetworkMode, Equals, dockercontainer.NetworkMode("none"))
+ c.Check(hostCfg.Resources.NanoCPUs, Equals, int64(4000000000))
+ c.Check(hostCfg.Resources.Memory, Equals, int64(123123123))
+ c.Check(hostCfg.Resources.MemorySwap, Equals, int64(123123123))
+ c.Check(hostCfg.Resources.KernelMemory, Equals, int64(123123123))
+ c.Check(hostCfg.Resources.DeviceRequests, DeepEquals, []dockercontainer.DeviceRequest{{
+ Driver: "nvidia",
+ Count: 3,
+ Capabilities: [][]string{{"gpu", "nvidia", "compute", "utility"}},
+ }})
+}