diff --git a/config/default.go b/config/default.go index 7c4da1c5..ea605c57 100644 --- a/config/default.go +++ b/config/default.go @@ -28,6 +28,7 @@ func NewConfig() *Config { Args: []string{ "docker", "-d", + "--log-driver", "syslog", "-s", "overlay", "-b", "docker-sys", "--fixed-cidr", "172.18.42.1/16", @@ -100,10 +101,8 @@ func NewConfig() *Config { Environment: []string{ "DAEMON=true", }, - Volumes: []string{ - "/dev:/host/dev", - "/lib/modules:/lib/modules", - "/lib/firmware:/lib/firmware", + VolumesFrom: []string{ + "system-volumes", }, }, "system-volumes": { @@ -115,12 +114,14 @@ func NewConfig() *Config { CREATE_ONLY + "=true", }, Volumes: []string{ + "/dev:/host/dev", "/var/lib/rancher/conf:/var/lib/rancher/conf", "/lib/modules:/lib/modules", "/lib/firmware:/lib/firmware", "/var/run:/var/run", "/var/log:/var/log", }, + LogDriver: "json-file", }, "command-volumes": { Image: "state", @@ -250,13 +251,10 @@ func NewConfig() *Config { Image: "syslog", Privileged: true, Net: "host", - Links: []string{ - "cloud-init", - "network", - }, VolumesFrom: []string{ "system-volumes", }, + LogDriver: "json-file", }, "userdocker": { Image: "userdocker", diff --git a/docker/container.go b/docker/container.go index acc29bb5..f4a5d427 100644 --- a/docker/container.go +++ b/docker/container.go @@ -171,6 +171,12 @@ func (c *Container) Reset() *Container { } func (c *Container) parseService() { + if (c.ContainerCfg.Service.LogDriver == "" || c.ContainerCfg.Service.LogDriver == "syslog") && + !util.Contains(c.ContainerCfg.Service.Links, "syslog") { + log.Debugf("Adding syslog link to %s\n", c.Name) + c.ContainerCfg.Service.Links = append(c.ContainerCfg.Service.Links, "syslog") + } + cfg, hostConfig, err := docker.Convert(c.ContainerCfg.Service) if err != nil { c.Err = err @@ -184,6 +190,7 @@ func (c *Container) parseService() { c.remove = c.Config.Labels[config.REMOVE] != "false" c.ContainerCfg.CreateOnly = c.Config.Labels[config.CREATE_ONLY] == "true" c.ContainerCfg.ReloadConfig = c.Config.Labels[config.RELOAD_CONFIG] == "true" + } func (c *Container) parseCmd() { diff --git a/scripts/dockerimages/00-base b/scripts/dockerimages/00-base index 658b30cb..1958b704 100644 --- a/scripts/dockerimages/00-base +++ b/scripts/dockerimages/00-base @@ -29,3 +29,6 @@ RUN rm /sbin/poweroff /sbin/reboot /sbin/halt && \ sed -i 's/\(^sudo.*\)/\1rancher/g' /etc/group && \ echo '%sudo ALL=(ALL) ALL' >> /etc/sudoers COPY scripts/dockerimages/scripts/inputrc /etc/inputrc +COPY scripts/dockerimages/scripts/entry.sh /usr/sbin/entry.sh + +ENTRYPOINT ["/usr/sbin/entry.sh"] diff --git a/scripts/dockerimages/scripts/entry.sh b/scripts/dockerimages/scripts/entry.sh new file mode 100755 index 00000000..c9f027f5 --- /dev/null +++ b/scripts/dockerimages/scripts/entry.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ -e /host/dev ]; then + mount --bind /host/dev /dev +fi + +exec "$@" diff --git a/scripts/dockerimages/scripts/udev.sh b/scripts/dockerimages/scripts/udev.sh index e5879fa3..870d9688 100755 --- a/scripts/dockerimages/scripts/udev.sh +++ b/scripts/dockerimages/scripts/udev.sh @@ -1,7 +1,5 @@ #!/bin/bash -mount --bind /host/dev /dev - if [ "$DAEMON" = true ]; then exec udevd fi