diff --git a/docker/services/swh-storage/entrypoint.sh b/docker/services/swh-storage/entrypoint.sh index 108ab66..040b7e9 100755 --- a/docker/services/swh-storage/entrypoint.sh +++ b/docker/services/swh-storage/entrypoint.sh @@ -1,52 +1,57 @@ #!/bin/bash set -e source /srv/softwareheritage/utils/pyutils.sh setup_pip if [ "$STORAGE_BACKEND" = "postgresql" ]; then source /srv/softwareheritage/utils/pgsql.sh setup_pgsql elif [ "$STORAGE_BACKEND" = "cassandra" ]; then echo Waiting for Cassandra to start wait-for-it ${CASSANDRA_SEED}:9042 -s --timeout=0 echo Creating keyspace cat << EOF | python3 from swh.storage.cassandra import create_keyspace create_keyspace(['${CASSANDRA_SEED}'], 'swh') EOF fi case "$1" in "shell") exec bash -i ;; + "swh") + shift + echo "Running swh command $@" + exec swh $@ + ;; *) if [ "$STORAGE_BACKEND" = "postgresql" ]; then wait_pgsql ${POSTGRES_DB} echo Database setup echo Creating extensions... swh db init-admin --db-name ${POSTGRES_DB} storage echo Initializing the database... swh db init --db-name ${POSTGRES_DB} storage fi echo Starting the swh-storage API server exec gunicorn --bind 0.0.0.0:5002 \ --reload \ --access-logfile /dev/stdout \ --access-logformat "%(t)s %(r)s %(s)s %(b)s %(M)s" \ --threads 4 \ --workers 2 \ --log-level INFO \ --timeout 3600 \ --config 'python:swh.core.api.gunicorn_config' \ 'swh.storage.api.server:make_app_from_configfile()' ;; esac diff --git a/docker/services/swh-worker/entrypoint.sh b/docker/services/swh-worker/entrypoint.sh index 647781d..08b76b0 100755 --- a/docker/services/swh-worker/entrypoint.sh +++ b/docker/services/swh-worker/entrypoint.sh @@ -1,30 +1,38 @@ #!/bin/bash set -e source /srv/softwareheritage/utils/pyutils.sh setup_pip case "$1" in "shell") - exec bash -i + shift + echo "Running command $@" + exec bash -i "$@" ;; + "swh") + shift + wait-for-it swh-storage:5002 -s --timeout=0 + echo "Running swh command $@" + exec swh $@ + ;; *) echo Waiting for RabbitMQ to start wait-for-it amqp:5672 -s --timeout=0 echo Register task types in scheduler database wait-for-it swh-scheduler:5008 -s --timeout=0 swh scheduler --url ${SWH_SCHEDULER_INSTANCE} task-type register echo Starting the swh Celery worker for ${SWH_WORKER_INSTANCE} exec python -m celery \ --app=swh.scheduler.celery_backend.config.app \ worker \ --pool=prefork --events \ --concurrency=${CONCURRENCY} \ --max-tasks-per-child=${MAX_TASKS_PER_CHILD} \ -Ofair --loglevel=${LOGLEVEL} \ --hostname "${SWH_WORKER_INSTANCE}@%h" ;; esac