Files
watchstate/container/files/init-container.sh
2023-02-07 20:35:50 +03:00

84 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
DATA_PATH="${WS_DATA_PATH:-/config}"
ENV_FILE="${DATA_PATH}/config/.env"
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
WS_UMASK="${WS_UMASK:-0000}"
umask "${WS_UMASK}"
if [ ! -w "${DATA_PATH}" ]; then
CH_USER=$(stat -c "%u" "${DATA_PATH}")
CH_GRP=$(stat -c "%g" "${DATA_PATH}")
echo "[${TIME_DATE}] ERROR: Unable to write to [${DATA_PATH}] data directory. Current user id [${UID}] while directory owner is [${CH_USER}]"
echo "[${TIME_DATE}] change docker-compose.yaml user: to user:\"${CH_USER}:${CH_GRP}\""
exit 1
fi
if [ -f "${ENV_FILE}" ]; then
echo "[${TIME_DATE}] INFO: Loading environment variables from [${ENV_FILE}]."
while read -r LINE; do
if [[ $LINE == *'='* ]] && [[ $LINE != '#'* ]]; then
ENV_VAR="$(echo "${LINE}" | envsubst)"
eval "declare -x $ENV_VAR"
fi
done <"${ENV_FILE}"
else
echo "[${TIME_DATE}] INFO: No environment file present at [${ENV_FILE}]."
fi
WS_DISABLE_HTTP=${WS_DISABLE_HTTP:-0}
WS_DISABLE_CRON=${WS_DISABLE_CRON:-0}
WS_DISABLE_CACHE=${WS_DISABLE_CACHE:-0}
set -u
# Generate Config structure.
#
WS_CACHE_NULL=1 /opt/bin/console -v >/dev/null
if [ 0 = "${WS_DISABLE_CACHE}" ]; then
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Starting Cache Server."
redis-server "/opt/config/redis.conf"
fi
if [ 0 = "${WS_DISABLE_HTTP}" ]; then
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Starting HTTP Server."
caddy start --config /opt/config/Caddyfile
fi
if [ 0 = "${WS_DISABLE_CRON}" ]; then
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Starting Task Scheduler."
/opt/bin/job-runner &
fi
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Caching tool Routes."
/opt/bin/console system:routes
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Running database migrations."
/opt/bin/console system:db:migrations
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Running database maintenance tasks."
/opt/bin/console system:db:maintenance
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Ensuring State table has correct indexes."
/opt/bin/console system:index
TIME_DATE=$(date +"%Y-%m-%dT%H:%M:%S%z")
echo "[${TIME_DATE}] Running - $(/opt/bin/console --version)"
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- php-fpm "$@"
fi
exec "$@"