summaryrefslogtreecommitdiff
path: root/docker-run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker-run.sh')
-rwxr-xr-xdocker-run.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/docker-run.sh b/docker-run.sh
new file mode 100755
index 0000000..696aa35
--- /dev/null
+++ b/docker-run.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+set -eu
+
+WAIT_DB_HOST=${TRAVELYNX_DB_HOST}
+WAIT_DB_PORT=5432
+
+check_config() {
+ if [ ! -f travelynx.conf ]
+ then
+ echo "The configuration file is missing"
+ exit 1
+ fi
+}
+
+wait_for_db() {
+ set +e
+ for i in $(seq 1 ${WAIT_DB_TIMEOUT:-5})
+ do
+ (echo >/dev/tcp/${WAIT_DB_HOST}/${WAIT_DB_PORT}) &>/dev/null
+ if [ $? -eq 0 ]; then
+ break
+ else
+ echo "Can't reach DB @ ${WAIT_DB_HOST}:${WAIT_DB_PORT}"
+ fi
+ sleep 1
+ done
+ set -e
+}
+
+run_app() {
+ if [ \
+ "${TRAVELYNX_MAIL_DISABLE:-0}" -eq 0 \
+ -a "${TRAVELYNX_MAIL_HOST:-unset}" != "unset" \
+ ]
+ then
+ export EMAIL_SENDER_TRANSPORT=SMTP
+ export EMAIL_SENDER_TRANSPORT_HOST=${TRAVELYNX_MAIL_HOST}
+ export EMAIL_SENDER_TRANSPORT_PORT=${TRAVELYNX_MAIL_PORT:-25}
+ fi
+
+ perl index.pl database migrate
+
+ exec /usr/local/bin/hypnotoad -f index.pl
+}
+
+run_cron() {
+ exec perl index.pl worker
+}
+
+check_config
+wait_for_db
+
+if [ "${CRON:-0}" -ne "0" ]
+then
+ run_cron
+fi
+
+run_app \ No newline at end of file