diff --git a/docker-compose.yml b/docker-compose.yml --- a/docker-compose.yml +++ b/docker-compose.yml @@ -269,6 +269,12 @@ - swh-storage - amqp + swh-indexer-journal-client: + image: swh/indexer-journal-client + build: ./dockerfiles/swh-indexer-journal-client + depends_on: + - swh-journal-publisher + # Journal related swh-storage-listener: diff --git a/dockerfiles/swh-indexer-journal-client/Dockerfile b/dockerfiles/swh-indexer-journal-client/Dockerfile new file mode 100644 --- /dev/null +++ b/dockerfiles/swh-indexer-journal-client/Dockerfile @@ -0,0 +1,12 @@ +FROM python:3 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y libsystemd-dev + +RUN pip install swh-indexer +COPY journal_client.yml /etc/softwareheritage/indexer/ +COPY entrypoint.sh / + +ENTRYPOINT ["/entrypoint.sh"] + diff --git a/dockerfiles/swh-indexer-journal-client/entrypoint.sh b/dockerfiles/swh-indexer-journal-client/entrypoint.sh new file mode 100755 --- /dev/null +++ b/dockerfiles/swh-indexer-journal-client/entrypoint.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +if [[ -d /src ]] ; then + for srcrepo in /src/swh-* ; do + pushd $srcrepo + pip install -e . + popd + done +fi + +echo Installed Python packages: +pip list + +case "$1" in + "shell") + exec bash -i + ;; + *) + echo "Starting swh-journal client" + python3 -m swh.indexer.journal_client + ;; +esac + diff --git a/dockerfiles/swh-indexer-journal-client/journal_client.yml b/dockerfiles/swh-indexer-journal-client/journal_client.yml new file mode 100644 --- /dev/null +++ b/dockerfiles/swh-indexer-journal-client/journal_client.yml @@ -0,0 +1,10 @@ +brokers: + - kafka +# small number of batch +max_messages: 1 +consumer_id: swh.indexer.journal_client + +scheduler: + cls: remote + args: + url: http://swh-scheduler-api:5008/