aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-03-21 14:12:41 +0000
committerGerrit Code Review <review@openstack.org>2019-03-21 14:12:41 +0000
commitbebfa70ad143aa0caf41104fe20f7d037dbc249d (patch)
tree66ebb2b49bfb24d87f99eb1f10951a075f35a92f /docker
parentf8976953bf1bf20ae3417d07fe9c52a12edcb399 (diff)
parent3075685d01554447144f37201f241f7f1ff1ad3b (diff)
downloadkolla-bebfa70ad143aa0caf41104fe20f7d037dbc249d.tar.gz
kolla-bebfa70ad143aa0caf41104fe20f7d037dbc249d.zip
Merge "Fix MariaDB 10.3 upgrade"
Diffstat (limited to 'docker')
-rw-r--r--docker/mariadb/Dockerfile.j214
-rw-r--r--docker/mariadb/extend_start.sh13
2 files changed, 26 insertions, 1 deletions
diff --git a/docker/mariadb/Dockerfile.j2 b/docker/mariadb/Dockerfile.j2
index 67a1c1d60..cc7b27194 100644
--- a/docker/mariadb/Dockerfile.j2
+++ b/docker/mariadb/Dockerfile.j2
@@ -13,8 +13,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'galera',
'hostname',
'mariadb',
- 'mariadb-server-galera',
'mariadb-backup',
+ 'mariadb-server-galera',
+ 'mariadb-server-utils',
'pv',
'rsync',
'tar'
@@ -50,6 +51,17 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start \
{% if base_package_type == 'deb' %}
RUN mkdir -p /var/run/mysqld && chown mysql /var/run/mysqld && chmod 755 /var/run/mysqld
{% endif %}
+
+{% 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"]
+CMD ["kolla_start"]
+{% endblock %}
+
{% block mariadb_footer %}{% endblock %}
{% block footer %}{% endblock %}
diff --git a/docker/mariadb/extend_start.sh b/docker/mariadb/extend_start.sh
index 310f79c2c..88be89d02 100644
--- a/docker/mariadb/extend_start.sh
+++ b/docker/mariadb/extend_start.sh
@@ -38,6 +38,19 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
exit 0
fi
+# This catches all cases of the KOLLA_UPGRADE variable being set, including empty
+if [[ "${!KOLLA_UPGRADE[@]}" ]]; then
+ # The mysql_upgrade command treats any directories under /var/lib/mysql as
+ # databases. Somehow we can end up with a .pki directory, which causes the
+ # command to fail with this error:
+ # Incorrect database name '#mysql50#.pki' when selecting the database
+ # There doesn't seem to be anything in the directory, so remove it.
+ rm -rf /var/lib/mysql/.pki
+
+ mysql_upgrade --user=root --password="${DB_ROOT_PASSWORD}"
+ exit 0
+fi
+
if [[ "${!BOOTSTRAP_ARGS[@]}" ]]; then
ARGS="${BOOTSTRAP_ARGS}"
fi