claude-memory/graph/solutions/gitea-actions-docker-buildx-registry-cache-auth-fix-856511.md

1.6 KiB

id type title tags importance confidence created updated relations
856511bd-a987-48cf-9dfe-ee069f32beea solution Gitea Actions: Docker buildx registry cache auth fix
gitea
docker
ci-cd
fix
buildx
cache
0.7 0.8 2026-02-13T20:38:30.950917+00:00 2026-03-05T03:31:28.917178+00:00
target type direction strength edge_id
77cf0fb1-9a58-43d2-b1d2-6532bafa6204 BUILDS_ON incoming 0.9 cd4fb377-d051-457b-8521-89aa39496ec7
target type direction strength edge_id
f6751853-4ca9-4c82-a767-3348ad6275a7 BUILDS_ON incoming 0.77 1ebef1c0-1513-4d6c-a67d-0db8b0878e40
target type direction strength edge_id
8a1ffc11-7ad8-44d1-9cf3-47e886891ff1 RELATED_TO incoming 0.79 4b6f7aba-c75d-412c-b284-d54fdb5258cf

When using Docker buildx with registry-based cache (cache-from/cache-to type=registry), the Docker Hub login step must run on ALL builds, not just main branch. Without login, PR builds fail on second run with 'push access denied, repository does not exist or may require authorization' when trying to write cache layers.

Fix: Remove the 'if: github.ref == refs/heads/main' condition from the Docker Hub login step. The push flag on build-push-action still gates actual image publishing to main-only, so this is safe.

Template location: server-configs/gitea/workflow-templates/docker-build-template.yml Affected repos: major-domo-bot, major-domo-database, paper-dynasty, paper-dynasty-database

The error manifests on the SECOND build because the first build creates cache layers successfully (fresh write), but subsequent builds fail when trying to overwrite existing layers without auth.