Add config option use_dumb_init to add it to container images
Usage of dumb-init can also be disabled from cli with
`--nouse-dumb-init` when building images.
Change-Id: Id32d54fc9913b83cf121ede5a5e265e0772062ae
Related-Bug: #1821970
(cherry picked from commit fb4cb9efda
)
This commit is contained in:
parent
4e63ecc9ab
commit
a3419f060e
|
@ -415,8 +415,9 @@ COPY start.sh /usr/local/bin/kolla_start
|
|||
COPY sudoers /etc/sudoers
|
||||
COPY curlrc /root/.curlrc
|
||||
|
||||
{% block dumb_init_installation %}
|
||||
{% if use_dumb_init %}
|
||||
|
||||
{% block dumb_init_installation %}
|
||||
{% if base_arch == 'x86_64' %}
|
||||
|
||||
RUN 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 \
|
||||
|
@ -435,9 +436,10 @@ RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \
|
|||
{% endif %}
|
||||
|
||||
ENTRYPOINT ["dumb-init", "--single-child", "--"]
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
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 \
|
||||
|
|
|
@ -51,15 +51,18 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start \
|
|||
RUN mkdir -p /var/run/mysqld && chown mysql /var/run/mysqld && chmod 755 /var/run/mysqld
|
||||
{% endif %}
|
||||
|
||||
{% if use_dumb_init %}
|
||||
{% block mariadb_entrypoint %}
|
||||
# NOTE(mgoddard): Override the dumb-init arguments to avoid passing
|
||||
# --single-child. This does not play well with mysqld_safe, which ignores
|
||||
# SIGTERM, meaning Docker needs to forcibly kill the container to stop it.
|
||||
# Without --single-child, the TERM signal is sent to all subprocesses,
|
||||
# including mysqld.
|
||||
ENTRYPOINT ["dumb-init"]
|
||||
|
||||
ENTRYPOINT ["dumb-init", "--"]
|
||||
CMD ["kolla_start"]
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
|
||||
{% block mariadb_footer %}{% endblock %}
|
||||
{% block footer %}{% endblock %}
|
||||
|
|
|
@ -182,6 +182,8 @@ _CLI_OPTS = [
|
|||
cfg.StrOpt('base-arch', default=hostarch,
|
||||
choices=BASE_ARCH,
|
||||
help='The base architecture. Default is same as host'),
|
||||
cfg.BoolOpt('use-dumb-init', default=True,
|
||||
help='Use dumb-init as init system in containers'),
|
||||
cfg.BoolOpt('debug', short='d', default=False,
|
||||
help='Turn on debugging log level'),
|
||||
cfg.BoolOpt('skip-parents', default=False,
|
||||
|
|
|
@ -663,6 +663,7 @@ class KollaWorker(object):
|
|||
else:
|
||||
self.namespace = conf.namespace
|
||||
self.base = conf.base
|
||||
self.use_dumb_init = conf.use_dumb_init
|
||||
self.base_tag = conf.base_tag
|
||||
self.install_type = conf.install_type
|
||||
self.tag = conf.tag
|
||||
|
@ -866,6 +867,7 @@ class KollaWorker(object):
|
|||
'base_image': self.conf.base_image,
|
||||
'base_distro_tag': self.base_tag,
|
||||
'base_arch': self.base_arch,
|
||||
'use_dumb_init': self.use_dumb_init,
|
||||
'supported_distro_release': supported_distro_release,
|
||||
'install_metatype': self.install_metatype,
|
||||
'image_prefix': self.image_prefix,
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Adds configration option ``use_dumb_init``, with default value of ``True``.
|
||||
This can be use to avoid the of ``dumb-init`` as the container entrypoint,
|
||||
using ``kolla_start`` directly instead. This option can also be disabled
|
||||
via the ``kolla-build --nouse-dumb-init`` CLI argument.
|
Loading…
Reference in New Issue