aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorJeffrey Zhang <jeffrey.zhang@99cloud.net>2016-08-18 16:42:02 +0800
committerJeffrey Zhang <zhang.lei.fly@gmail.com>2016-08-20 17:27:17 +0000
commit6710bbeb7c8bdcec45b1fb01c78618f6c9482e80 (patch)
tree05cd9e87f19028f32b610d0b439c703399988a62 /docker
parent755d5172b325fbfebb80df64a63d6faf653c3390 (diff)
downloadkolla-6710bbeb7c8bdcec45b1fb01c78618f6c9482e80.tar.gz
kolla-6710bbeb7c8bdcec45b1fb01c78618f6c9482e80.zip
Use dumb-init to manage the pid 1 process
Normally, when you launch a Docker container, the process you're executing becomes PID 1, giving it the quirks and responsibilities that come with being the init system for the container. There are two common issues this presents: * In most cases, signals won't be handled properly. * Orphaned zombie processes aren't properly reaped. the dumb-init acting like a simple init system. It launches a single process and then proxies all received signals to a session rooted at that child process. Closes-Bug: #1614509 Change-Id: I9d3d04648e151ddc7c6732b92ffd3b6c9fe467ec
Diffstat (limited to 'docker')
-rw-r--r--docker/base/Dockerfile.j24
-rw-r--r--docker/base/start.sh2
-rw-r--r--docker/kolla-toolbox/Dockerfile.j22
3 files changed, 5 insertions, 3 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index 22a6278f4..49700bc4b 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -262,6 +262,8 @@ RUN touch /usr/local/bin/kolla_extend_start \
&& chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_set_configs \
&& chmod 440 /etc/sudoers \
&& groupadd kolla \
- && rm -f /tmp/kolla_bashrc
+ && rm -f /tmp/kolla_bashrc \
+ && curl -sSL https://github.com/Yelp/dumb-init/releases/download/v1.1.3/dumb-init_1.1.3_amd64 -o /usr/local/bin/dumb-init \
+ && chmod +x /usr/local/bin/dumb-init
CMD ["kolla_start"]
diff --git a/docker/base/start.sh b/docker/base/start.sh
index b45660bd8..c1dfe68cc 100644
--- a/docker/base/start.sh
+++ b/docker/base/start.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/local/bin/dumb-init /bin/bash
set -o errexit
# Wait for the log socket
diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2
index 44611c059..8e12bfce9 100644
--- a/docker/kolla-toolbox/Dockerfile.j2
+++ b/docker/kolla-toolbox/Dockerfile.j2
@@ -66,7 +66,7 @@ COPY ansible.cfg /home/ansible/.ansible.cfg
COPY ansible_sudoers /etc/sudoers.d/ansible_sudoers
RUN chmod 440 /etc/sudoers.d/ansible_sudoers
-CMD ["/bin/sleep", "infinity"]
+CMD ["/usr/local/bin/dumb-init", "/bin/sleep", "infinity"]
{% block kolla_toolbox_footer %}{% endblock %}
{% block footer %}{% endblock %}