Timeout Forgejo Container Registry
Da ich vor einigen Wochen die ersten Forgejo-Runner in meinem Homelab in Betrieb genommen habe, wurde es langsam Zeit, mein gutes altes Drone.io in Rente zu schicken. Grundsätzlich haben die einzelnen Container-Builds mit anschließendem push auf die Forgejo-Container-Registry auch funktioniert.
Mein Upload läuft über eine VDSL-Leitung mit nur 10 Mbit. Bei mehreren größeren Images kam es wiederholt zum Timeout-Fehler
status code 499 - Internal Server Error
.

Inhaltsverzeichnis
Analyse Status Code 499
Zuerst habe ich den Fehler im Forgejo-Server vermutet. Also: Logs prüfen – jedoch keine Auffälligkeiten außer der beendeten Verbindung.
Falls du Forgejo nutzt: Den Loglevel hochstellen kann helfen, tiefergehende Infos zu bekommen. Bei mir brachte es leider keine neuen Hinweise.
Timeout beim docker push Kommando?
Mein erster Verdacht: zu langsame Upload-Bandbreite. Darum habe ich die Timeouts im Docker-Client erhöht:
export DOCKER_CLIENT_TIMEOUT=300export DOCKER_PUSH_TIMEOUT=300
Leider half das nicht weiter. Ich habe einige Images zu Builder-Images umgestellt – eine Notlösung, aber das eigentliche Problem blieb.
Die Ursache
Zufallsfund: In einer Immich-Diskussion stieß ich auf ein ähnliches Problem.
Seit 2024 hat Traefik einen Default-Timeout von 60 Sekunden. Bei langsamen Uploads führt das zu
499 - Internal Server Error
. Das war mein Problem. Bingo!
Die Lösung
Einfach die Timeout-Parameter in Traefik hochsetzen.
Hier der relevante Abschnitt aus meiner traefik.yml
:
web: address: ":80" http: redirections: entryPoint: to: websecure scheme: https
websecure: address: ":443" transport: respondingTimeouts: readTimeout: 600s idleTimeout: 300s writeTimeout: 600s
Seitdem laufen auch größere docker push
-Vorgänge ohne Abbruch durch.