Changeset View
Changeset View
Standalone View
Standalone View
dockerfiles/swh-listers-worker/entrypoint.sh
#!/bin/bash | #!/bin/bash | ||||
set -e | set -e | ||||
export PATH=${HOME}/.local/bin:${PATH} | |||||
if [[ -d /src ]] ; then | if [[ -d /src ]] ; then | ||||
for srcrepo in /src/swh-* ; do | for srcrepo in /src/swh-* ; do | ||||
pushd $srcrepo | pushd $srcrepo | ||||
echo "WARNING: $srcrepo wil NOT be pip installed in dev mode" | echo "WARNING: $srcrepo wil NOT be pip installed in dev mode" | ||||
echo " due to permission limitations." | echo " due to permission limitations." | ||||
pip install --user . | pip install --user . | ||||
popd | popd | ||||
Show All 12 Lines | |||||
dbname=${POSTGRES_DB} | dbname=${POSTGRES_DB} | ||||
host=${PGHOST} | host=${PGHOST} | ||||
port=5432 | port=5432 | ||||
user=${PGUSER} | user=${PGUSER} | ||||
EOF | EOF | ||||
chmod 0600 ~/.pgpass | chmod 0600 ~/.pgpass | ||||
mkdir -p ~/.config/swh/worker | |||||
cat > ~/.config/swh/worker/${SWH_WORKER_INSTANCE}.ini <<EOF | |||||
[main] | |||||
task_broker = amqp://guest@amqp// | |||||
task_modules = swh.lister.${SWH_WORKER_INSTANCE}.tasks | |||||
task_soft_time_limit = 0 | |||||
EOF | |||||
ln -fs ~/.config/swh/lister.yml ~/.config/swh/lister-${SWH_WORKER_INSTANCE}.yml | |||||
case "$1" in | case "$1" in | ||||
"shell") | "shell") | ||||
exec bash -i | exec bash -i | ||||
;; | ;; | ||||
*) | *) | ||||
echo Setup ${POSTGRES_DB} database for ${SWH_WORKER_INSTANCE} | echo Setup ${POSTGRES_DB} database for ${SWH_WORKER_INSTANCE} | ||||
if psql -lqt | cut -d \| -f 1 | grep -qw ${POSTGRES_DB}; then | if psql -lqt | cut -d \| -f 1 | grep -qw ${POSTGRES_DB}; then | ||||
echo Database already exists, nothing to do | echo Database already exists, nothing to do | ||||
else | else | ||||
echo Creating database | echo Creating database | ||||
createdb ${POSTGRES_DB} | createdb ${POSTGRES_DB} | ||||
echo Initialize database | echo Initialize database | ||||
python -m swh.lister.cli --create-tables --with-data \ | python -m swh.lister.cli --create-tables --with-data \ | ||||
--db-url postgres://${PGUSER}@${PGHOST}/${POSTGRES_DB} \ | --db-url postgres://${PGUSER}@${PGHOST}/${POSTGRES_DB} \ | ||||
--lister ${SWH_WORKER_INSTANCE} | all | ||||
fi | fi | ||||
echo Starting the swh-lister Celery worker for ${SWH_WORKER_INSTANCE} | echo Starting the swh-lister Celery worker for ${SWH_WORKER_INSTANCE} | ||||
exec python -m celery worker \ | exec python -m celery worker \ | ||||
--app=swh.scheduler.celery_backend.config.app \ | --app=swh.scheduler.celery_backend.config.app \ | ||||
--pool=prefork --events \ | --pool=prefork --events \ | ||||
--concurrency=${CONCURRENCY} \ | --concurrency=${CONCURRENCY} \ | ||||
--maxtasksperchild=${MAX_TASKS_PER_CHILD} \ | --maxtasksperchild=${MAX_TASKS_PER_CHILD} \ | ||||
-Ofair --loglevel=${LOGLEVEL} --without-gossip \ | -Ofair --loglevel=${LOGLEVEL} --without-gossip \ | ||||
--without-mingle --without-heartbeat \ | --without-mingle --without-heartbeat \ | ||||
--hostname "lister-${SWH_WORKER_INSTANCE}@%h" | --hostname "${SWH_WORKER_INSTANCE}@%h" | ||||
;; | ;; | ||||
esac | esac |