Files
docker-repo/docker-compose.yml
T
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

63 lines
1.5 KiB
YAML

services:
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./data/caddy/data:/data
- ./data/caddy/config:/config
entrypoint: ["sh", "-c"]
command:
- |
echo '${DOMAIN} {
handle /v2/* {
reverse_proxy registry:5000
}
handle {
reverse_proxy auth:5000
}
}' | caddy run --adapter caddyfile --config -
depends_on:
- registry
- auth
networks:
- registry_net
registry:
image: registry:2
restart: unless-stopped
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Docker Registry
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_STORAGE_DELETE_ENABLED: "true"
volumes:
- ./data/registry:/var/lib/registry
- ./data/htpasswd:/auth:ro
networks:
- registry_net
auth:
build: ./auth-app
restart: unless-stopped
environment:
ADMIN_USER: ${ADMIN_USER}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
SECRET_KEY: ${SECRET_KEY}
DB_PATH: /data/users.db
HTPASSWD_PATH: /auth/htpasswd
GC_CONFIG: /app/registry-gc-config.yml
volumes:
- ./data/auth:/data
- ./data/htpasswd:/auth
# Registry-Speicher fuer die Garbage Collection (gleicher Pfad wie im registry-Container)
- ./data/registry:/var/lib/registry
networks:
- registry_net
networks:
registry_net: