42 lines
1.1 KiB
Bash
42 lines
1.1 KiB
Bash
#!/bin/bash -e
|
|
|
|
echo "Running Datatracker checks..."
|
|
./ietf/manage.py check
|
|
|
|
if ! ietf/manage.py migrate --check ; then
|
|
echo "Unapplied migrations found, waiting to start..."
|
|
sleep 5
|
|
while ! ietf/manage.py migrate --check ; do
|
|
echo "... still waiting for migrations..."
|
|
sleep 5
|
|
done
|
|
fi
|
|
|
|
echo "Starting Datatracker..."
|
|
|
|
# trap TERM and shut down gunicorn
|
|
cleanup () {
|
|
if [[ -n "${gunicorn_pid}" ]]; then
|
|
echo "Terminating gunicorn..."
|
|
kill -TERM "${gunicorn_pid}"
|
|
wait "${gunicorn_pid}"
|
|
fi
|
|
}
|
|
|
|
trap 'trap "" TERM; cleanup' TERM
|
|
|
|
# start gunicorn in the background so we can trap the TERM signal
|
|
gunicorn \
|
|
-c /workspace/gunicorn.conf.py \
|
|
--workers "${DATATRACKER_GUNICORN_WORKERS:-9}" \
|
|
--max-requests "${DATATRACKER_GUNICORN_MAX_REQUESTS:-32768}" \
|
|
--timeout "${DATATRACKER_GUNICORN_TIMEOUT:-180}" \
|
|
--bind :8000 \
|
|
--log-level "${DATATRACKER_GUNICORN_LOG_LEVEL:-info}" \
|
|
--capture-output \
|
|
--access-logfile -\
|
|
${DATATRACKER_GUNICORN_EXTRA_ARGS} \
|
|
ietf.wsgi:application &
|
|
gunicorn_pid=$!
|
|
wait "${gunicorn_pid}"
|