You've already forked docker-ara
feat: Add Docker support with environment configuration and cron maintenance ✨
This commit is contained in:
52
docker/entrypoint.sh
Normal file
52
docker/entrypoint.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Timezone — controls when crond fires, not just ARA display times.
|
||||
# Set TZ at runtime, e.g.: -e TZ=Pacific/Auckland
|
||||
# Defaults to UTC if not set.
|
||||
# ---------------------------------------------------------------------------
|
||||
TZ="${TZ:-UTC}"
|
||||
ln -snf "/usr/share/zoneinfo/${TZ}" /etc/localtime
|
||||
echo "${TZ}" > /etc/timezone
|
||||
export TZ
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Configurable retention period (days) – override via environment variable
|
||||
# Default: 30 days
|
||||
# ---------------------------------------------------------------------------
|
||||
PRUNE_DAYS="${ARA_PRUNE_DAYS:-30}"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Cron schedule for pruning – override via environment variable
|
||||
# Default: daily at 02:00
|
||||
# ---------------------------------------------------------------------------
|
||||
PRUNE_CRON="${ARA_PRUNE_CRON:-0 2 * * *}"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Write the cron job
|
||||
# Uses `ara playbook prune` with the offline client so it talks directly
|
||||
# to the same database without needing a running HTTP server.
|
||||
# ARA_BASE_DIR is inherited from the container environment.
|
||||
# ---------------------------------------------------------------------------
|
||||
echo "${PRUNE_CRON} /usr/local/bin/ara playbook prune \
|
||||
--client offline \
|
||||
--days ${PRUNE_DAYS} \
|
||||
--limit 9000 \
|
||||
--confirm >> /proc/1/fd/1 2>&1" \
|
||||
| crontab -
|
||||
|
||||
# Start the cron daemon in the background
|
||||
crond -n &
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Run DB migrations then start gunicorn
|
||||
# ---------------------------------------------------------------------------
|
||||
/usr/local/bin/ara-manage migrate
|
||||
|
||||
exec python3 -m gunicorn \
|
||||
--workers="${ARA_GUNICORN_WORKERS:-4}" \
|
||||
--access-logfile - \
|
||||
--bind "[::]:${ARA_PORT:-8000}" \
|
||||
--access-logformat '%({x-forwarded-for}i)s %l %u %t "%r" %s %b "%f" "%a"' \
|
||||
ara.server.wsgi
|
||||
Reference in New Issue
Block a user