team-3/deployment/docker/c3nav.bash

143 lines
3 KiB
Bash
Raw Normal View History

2016-12-18 15:54:37 +01:00
#!/bin/bash
set -e
cd /c3nav/src
export DATA_DIR=/data/
NUM_WORKERS=10
if [ ! -d /data/logs ]; then
mkdir /data/logs;
fi
ls /data/map
if [ "$1" == "webworker" ]; then
until psql -h "postgres" -U "c3nav" -c '\l'; do
>&2 echo "Postgres is unavailable! waiting…"
sleep 1
done
>&2 echo "Postgres is available! continuing…"
while ! nc redis 6379; do
>&2 echo "Redis is unavailable - sleeping"
sleep 1
done
>&2 echo "Redis is available! continuing…"
2016-12-23 13:54:15 +01:00
python manage.py migrate --noinput
2016-12-23 14:30:42 +01:00
python manage.py loadmap -y
2016-12-23 15:13:11 +01:00
mkdir -p /static.dist
cp -r /c3nav/src/c3nav/static.dist/* /static.dist/
2016-12-23 13:54:15 +01:00
2016-12-18 15:54:37 +01:00
exec gunicorn c3nav.wsgi \
--name c3nav \
--workers $NUM_WORKERS \
--max-requests 1200 \
--max-requests-jitter 50 \
--log-level=info \
2016-12-23 14:14:28 +01:00
--bind [::]:8000
2016-12-18 15:54:37 +01:00
fi
if [ "$1" == "taskworker" ]; then
until psql -h "postgres" -U "c3nav" -c '\l'; do
>&2 echo "Postgres is unavailable! waiting…"
sleep 1
done
>&2 echo "Postgres is available! continuing…"
while ! nc redis 6379; do
>&2 echo "Redis is unavailable - sleeping"
sleep 1
done
>&2 echo "Redis is available! continuing…"
2016-12-18 15:54:37 +01:00
export C_FORCE_ROOT=True
exec celery -A c3nav worker -l info
fi
2016-12-23 13:54:15 +01:00
python manage.py migrate --noinput
2016-12-23 02:05:33 +01:00
if [ "$1" == "loadmap" ]; then
echo ""
echo "### loading map..."
exec python manage.py loadmap -y
2016-12-23 02:05:33 +01:00
fi
if [ "$1" == "dumpmap" ]; then
echo ""
echo "### dumping map..."
exec python manage.py dumpmap -y
fi
2016-12-23 12:13:44 +01:00
if [ "$1" == "check" ]; then
echo ""
echo "### checking map..."
exec python manage.py checkmap
fi
if [ "$1" == "load_check" ]; then
echo ""
echo "### loading map..."
python manage.py loadmap -y
2016-12-18 15:54:37 +01:00
echo ""
echo "### checking map..."
exec python manage.py checkmap
2016-12-18 15:54:37 +01:00
fi
2016-12-25 12:40:52 +01:00
if [ "$1" == "runlocal" ]; then
2016-12-18 15:54:37 +01:00
echo ""
echo "### starting editor..."
exec python manage.py runserver 0.0.0.0:8000
2016-12-18 15:54:37 +01:00
fi
if [ "$1" == "build" ]; then
echo ""
echo "### rendering map..."
python manage.py rendermap
2016-12-18 15:54:37 +01:00
echo ""
echo "### building graph..."
2016-12-23 11:05:02 +01:00
python manage.py buildgraph
fi
if [ "$1" == "load_build" ]; then
echo ""
echo "### loading map..."
python manage.py loadmap -y
echo ""
echo "### rendering map..."
python manage.py rendermap
echo ""
echo "### building graph..."
2016-12-23 11:05:02 +01:00
python manage.py buildgraph
echo ""
echo "### chowning /data/…"
USER_ID=${LOCAL_USER_ID:0}
2016-12-23 11:05:02 +01:00
exec chown -R $USER_ID $DATA_DIR
2016-12-18 15:54:37 +01:00
fi
if [ "$1" == "all" ]; then
2016-12-23 02:05:33 +01:00
echo ""
echo "### loading map..."
python manage.py loadmap -y
2016-12-23 02:05:33 +01:00
2016-12-18 15:54:37 +01:00
echo ""
echo "### rendering map..."
python manage.py rendermap
2016-12-18 15:54:37 +01:00
echo ""
echo "### building graph..."
python manage.py buildgraph
2016-12-18 15:54:37 +01:00
echo ""
echo "### running server..."
exec python manage.py runserver 0.0.0.0:8000
2016-12-18 15:54:37 +01:00
fi
2016-12-25 12:40:52 +01:00
echo "Specify argument: webworker|taskworker|loadmap|dumpmap|check|load_check|runlocal|build|load_build|all"
2016-12-18 15:54:37 +01:00
exit 1