From 176ce54bd91aaab2c058219ba6bd7d556d0c955d Mon Sep 17 00:00:00 2001
From: Quentin Duchemin <quentinduchemin@tuta.io>
Date: Thu, 28 May 2020 18:14:57 +0200
Subject: [PATCH] [Etherpad] Automatic PG database creation and healthcheck in
 entrypoint

---
 pica-etherpad/Dockerfile                               | 2 +-
 pica-etherpad/entrypoint.sh                            | 2 +-
 pica-etherpad/secrets/etherpad-week-db.secrets.example | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pica-etherpad/Dockerfile b/pica-etherpad/Dockerfile
index 8f3a84b0..6d5a1b53 100644
--- a/pica-etherpad/Dockerfile
+++ b/pica-etherpad/Dockerfile
@@ -60,7 +60,7 @@ RUN useradd --uid ${UID} --create-home etherpad
 COPY --from=downloader --chown=etherpad /opt/etherpad-lite /opt/etherpad-lite/
 
 RUN apt-get update && \
-    apt-get install -y curl default-mysql-client && \
+    apt-get install -y curl default-mysql-client postgresql-client && \
     chmod +x /opt/etherpad-lite/entrypoint.sh && \
     usermod -d /opt/etherpad-lite etherpad && \
     chown -R etherpad /opt/etherpad-lite && \
diff --git a/pica-etherpad/entrypoint.sh b/pica-etherpad/entrypoint.sh
index 22b00ad0..d1fda49a 100644
--- a/pica-etherpad/entrypoint.sh
+++ b/pica-etherpad/entrypoint.sh
@@ -22,7 +22,7 @@ if [ -z "${DB_HOST}" ]; then
 	exit 1
 fi
 
-while ! mysqladmin ping -u${DB_USER} -p${DB_PASSWORD} -h"${DB_HOST}" &>/dev/null; do
+while ! { mysqladmin ping -u${DB_USER} -p${DB_PASSWORD} -h"${DB_HOST}" &>/dev/null || PGPASSWORD=${DB_PASSWORD} psql -h${DB_HOST} -U${DB_USER} -c "SELECT 1" }; do
 		echo "Database server not ready yet, re-trying in 5 seconds..."
     sleep 5
 done
diff --git a/pica-etherpad/secrets/etherpad-week-db.secrets.example b/pica-etherpad/secrets/etherpad-week-db.secrets.example
index 96af56a5..4d5e0fab 100644
--- a/pica-etherpad/secrets/etherpad-week-db.secrets.example
+++ b/pica-etherpad/secrets/etherpad-week-db.secrets.example
@@ -1 +1,3 @@
 POSTGRES_PASSWORD=password
+POSTGRES_USER=etherpad
+POSTGRES_DB=etherpad-lite
-- 
GitLab