# Die registry-Binary aus dem offiziellen Image uebernehmen (fuer Garbage Collection)
FROM registry:2 AS registry

FROM python:3.12-alpine

WORKDIR /app

# skopeo wird benoetigt, um Images aus anderen Registries zu kopieren
RUN apk add --no-cache skopeo
# registry-Binary fuer "registry garbage-collect"
COPY --from=registry /bin/registry /usr/local/bin/registry

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

# 1 Worker (gemeinsames Service-Passwort) + mehrere Threads fuer parallele
# Anfragen, waehrend ein skopeo-Kopiervorgang laeuft.
# Langes Timeout, da das Kopieren grosser Images mehrere Minuten dauern kann.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "1", "--threads", "8", \
     "--timeout", "1800", "app:app"]
