41daacd56c
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>
63 lines
1.5 KiB
YAML
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:
|