diff --git a/apps/swh-loader-highpriority/README b/apps/swh-loader-highpriority/README new file mode 100644 index 0000000000000000000000000000000000000000..41dc186104233ba3f75a3de99b66ca11d7885dd0 --- /dev/null +++ b/apps/swh-loader-highpriority/README @@ -0,0 +1,3 @@ +This used to be the "highpriority" image used by the save-code-now functionality +(bundling multiple [d]vcs loaders into one docker image). It's been deprecated in favor +of the "savecodenow" image. diff --git a/apps/swh-loader-savecodenow/Dockerfile b/apps/swh-loader-savecodenow/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8613caaf29d545ef3e0ba3f879259fdc0856f64f --- /dev/null +++ b/apps/swh-loader-savecodenow/Dockerfile @@ -0,0 +1,39 @@ +# Deeply inspired from the Dockerfile of the swh-graph project +ARG REGISTRY=container-registry.softwareheritage.org/swh/infra/swh-apps/ +ARG RSVNDUMP=/usr/local/bin/rsvndump +FROM ${REGISTRY}rsvndump-base:latest AS rsvndump_image + +FROM python:3.10-bullseye +COPY --from=rsvndump_image ${RSVNDUMP} ${RSVNDUMP} + +RUN apt-get -y update && \ + apt-get -y upgrade && \ + apt-get install -y libcmph-dev librdkafka-dev \ + libsvn-dev libapr1-dev libaprutil1-dev subversion \ + cvs bzr opam git patool mercurial && \ + apt clean && \ + addgroup --gid 1000 swh && \ + useradd --gid 1000 --uid 1000 -m -d /opt/swh swh && \ + mkdir /etc/swh + +USER swh +WORKDIR /opt/swh + +COPY --chown=swh:swh requirements-frozen.txt /opt/swh +COPY --chown=swh:swh entrypoint.sh /opt/swh + +ENV PYTHONPATH=/opt/swh +ENV PATH=/opt/swh/.local/bin:$PATH + +RUN chmod u+x /opt/swh/entrypoint.sh && \ + /usr/local/bin/python -m pip install --upgrade pip && \ + pip install --no-cache-dir -r requirements-frozen.txt && \ + pip install gunicorn + +ENV SWH_CONFIG_FILENAME=/etc/swh/config.yml +ENV SWH_WORKER_INSTANCE=loader +ENV CONCURRENCY=1 +ENV MAX_TASKS_PER_CHILD=5 +ENV LOGLEVEL=INFO + +ENTRYPOINT "/opt/swh/entrypoint.sh" diff --git a/apps/swh-loader-savecodenow/README.md b/apps/swh-loader-savecodenow/README.md new file mode 100644 index 0000000000000000000000000000000000000000..fe9c404132fd0fcbf24062dc6286556d8c3acde6 --- /dev/null +++ b/apps/swh-loader-savecodenow/README.md @@ -0,0 +1,2 @@ +This image is used for the save code now functionality. +It regroups a number of (d)vcs loaders into a single docker image. diff --git a/apps/swh-loader-savecodenow/entrypoint.sh b/apps/swh-loader-savecodenow/entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..7909d473e12fd5a387e5114bd4937bfd950fd4d9 --- /dev/null +++ b/apps/swh-loader-savecodenow/entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +case "$1" in + "shell") + shift + echo "Running command $@" + exec bash -i "$@" + ;; + *) + 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} \ + --without-gossip --without-mingle --without-heartbeat \ + --hostname "${SWH_WORKER_INSTANCE}@%h" + ;; +esac diff --git a/apps/swh-loader-savecodenow/requirements.txt b/apps/swh-loader-savecodenow/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e2bef5bb1158208f7e896b7c6d95dbd9f9e2eff --- /dev/null +++ b/apps/swh-loader-savecodenow/requirements.txt @@ -0,0 +1,7 @@ +swh-loader-bzr +swh-loader-core +swh-loader-cvs +swh-loader-git +swh-loader-svn +swh-loader-mercurial +swh-loader-metadata