Files
duffyduck 41daacd56c Images aus Fremd-Registries holen, loeschen und Speicher aufraeumen
Tab "Images" um Verwaltungsfunktionen erweitert:
- Einzel-Pull: Image aus anderer Registry (z. B. Docker Hub) per skopeo
  in die eigene Registry kopieren, optional mit Benutzername/Kennwort
  oder Access Token fuer private Quell-Registries
- Bulk-Pull: alle image-Eintraege einer docker-compose (Textfeld oder
  Datei-Upload) auf einmal holen; Variablen/eigene Registry werden ignoriert
- Digest-Dedup: bereits mit gleichem Digest vorhandene Images werden
  uebersprungen (kopiert mit --all, damit Multi-Arch-Digests matchen)
- Loeschen: Muelltonne hinter jedem Tag mit Rueckfrage
- Garbage Collection: gibt belegten Speicher frei, laeuft per registry-Binary
  (Multi-Stage-Build) direkt auf dem gemounteten Speicher, kein Docker-Socket

gunicorn: 1 Worker (gemeinsames Service-Passwort) + 8 Threads, Timeout 1800s
fuer lange Kopiervorgaenge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 10:34:42 +02:00

25 lines
788 B
Docker

# 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"]