From cbf1cb81a90e3e74656a4c6647fae09a8cfee5f5 Mon Sep 17 00:00:00 2001 From: derekwaynecarr Date: Thu, 21 Apr 2016 02:41:23 -0400 Subject: [PATCH] SHM size must be greater than 0 --- pkg/kubelet/dockertools/kube_docker_client.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/kubelet/dockertools/kube_docker_client.go b/pkg/kubelet/dockertools/kube_docker_client.go index 50a1d8f22eb..6239db90a14 100644 --- a/pkg/kubelet/dockertools/kube_docker_client.go +++ b/pkg/kubelet/dockertools/kube_docker_client.go @@ -55,6 +55,9 @@ type kubeDockerClient struct { // Make sure that kubeDockerClient implemented the DockerInterface. var _ DockerInterface = &kubeDockerClient{} +// the default ShmSize to use (in bytes) if not specified. +const defaultShmSize = int64(1024 * 1024 * 64) + // newKubeDockerClient creates an kubeDockerClient from an existing docker client. func newKubeDockerClient(dockerClient *dockerapi.Client) DockerInterface { return &kubeDockerClient{ @@ -126,6 +129,11 @@ func (d *kubeDockerClient) InspectContainer(id string) (*dockertypes.ContainerJS } func (d *kubeDockerClient) CreateContainer(opts dockertypes.ContainerCreateConfig) (*dockertypes.ContainerCreateResponse, error) { + // we provide an explicit default shm size as to not depend on docker daemon. + // TODO: evaluate exposing this as a knob in the API + if opts.HostConfig != nil && opts.HostConfig.ShmSize <= 0 { + opts.HostConfig.ShmSize = defaultShmSize + } createResp, err := d.client.ContainerCreate(getDefaultContext(), opts.Config, opts.HostConfig, opts.NetworkingConfig, opts.Name) if err != nil { return nil, err