From c9aebd73cc438ae1ae8ca9b1082525e2cc56661e Mon Sep 17 00:00:00 2001 From: andryyy Date: Sun, 8 Mar 2020 16:51:30 +0100 Subject: [PATCH] [Dovecot] Wait for versions table instead of failing and restarting --- data/Dockerfiles/dovecot/docker-entrypoint.sh | 11 +++++++++-- docker-compose.yml | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data/Dockerfiles/dovecot/docker-entrypoint.sh b/data/Dockerfiles/dovecot/docker-entrypoint.sh index 6759218f..6c4d80b9 100755 --- a/data/Dockerfiles/dovecot/docker-entrypoint.sh +++ b/data/Dockerfiles/dovecot/docker-entrypoint.sh @@ -317,8 +317,15 @@ IMAPSYNC_TABLE=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBP echo "$(envsubst < /usr/local/bin/maildir_gc.sh)" > /usr/local/bin/maildir_gc.sh # GUID generation -# Will fail and restart until versions exists (ok) -PUBKEY_MCRYPT=$(doveconf -P | grep -i mail_crypt_global_public_key | cut -d '<' -f2) +while [[ ${VERSIONS_OK} != 'OK' ]]; do + if [[ ! -z $(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = \"${DBNAME}\" AND TABLE_NAME = 'versions'") ]]; then + VERSIONS_OK=OK + else + echo "Waiting for versions table to be created..." + sleep 3 + fi +done +PUBKEY_MCRYPT=$(doveconf -P | grep -i mail_crypt_global_public_key 2> /dev/null| cut -d '<' -f2) if [ -f ${PUBKEY_MCRYPT} ]; then GUID=$(cat <(echo ${MAILCOW_HOSTNAME}) /mail_crypt/ecpubkey.pem | sha256sum | cut -d ' ' -f1 | tr -cd "[a-fA-F0-9.:/] ") if [ ${#GUID} -eq 64 ]; then diff --git a/docker-compose.yml b/docker-compose.yml index 0024c0b9..7b01e2fb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -184,7 +184,7 @@ services: - sogo dovecot-mailcow: - image: mailcow/dovecot:1.113 + image: mailcow/dovecot:1.114 depends_on: - mysql-mailcow dns: