public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[PHP-FPM] Trigger mysql_upgrade
04b699a3
data/Dockerfiles/phpfpm/Dockerfile | 1 +
data/Dockerfiles/phpfpm/docker-entrypoint.sh | 14 ++++++++++++++
2 files changed, 15 insertions(+)
Diff
diff --git a/data/Dockerfiles/phpfpm/Dockerfile b/data/Dockerfiles/phpfpm/Dockerfile
index a23a767e..eb411024 100644
--- a/data/Dockerfiles/phpfpm/Dockerfile
+++ b/data/Dockerfiles/phpfpm/Dockerfile
@@ -20,6 +20,7 @@ RUN apk add -U --no-cache autoconf \
imagemagick \
imagemagick-dev \
imap-dev \
+ jq \
libjpeg-turbo \
libjpeg-turbo-dev \
libmemcached-dev \
diff --git a/data/Dockerfiles/phpfpm/docker-entrypoint.sh b/data/Dockerfiles/phpfpm/docker-entrypoint.sh
index bf3d1025..481e097a 100755
--- a/data/Dockerfiles/phpfpm/docker-entrypoint.sh
+++ b/data/Dockerfiles/phpfpm/docker-entrypoint.sh
@@ -14,10 +14,24 @@ until [[ $(redis-cli -h redis-mailcow PING) == "PONG" ]]; do
sleep 2
done
+# Set a default release format
+
if [[ -z $(redis-cli --raw -h redis-mailcow GET Q_RELEASE_FORMAT) ]]; then
redis-cli --raw -h redis-mailcow SET Q_RELEASE_FORMAT raw
fi
+# Check of mysql_upgrade
+
+CONTAINER_ID=
+CONTAINER_ID=$(curl --silent --insecure https://dockerapi/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], id: .Id}" | jq -rc "select( .name | tostring | contains(\"mysql-mailcow\")) | .id")
+if [[ ! -z ${CONTAINER_ID} ]]; then
+ SQL_UPGRADE_RETURN=$(curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/exec -d '{"cmd":"system", "task":"mysql_upgrade"}' --silent -H 'Content-type: application/json' | jq -r .type)
+ if [[ ${SQL_UPGRADE_RETURN} == 'warning' ]]; then
+ echo "MySQL applied an upgrade, restarting PHP-FPM..."
+ exit 1
+ fi
+fi
+
# Trigger db init
echo "Running DB init..."
php -c /usr/local/etc/php -f /web/inc/init_db.inc.php