Replaces type=registry cache (which causes 400 errors from Docker Hub
due to stale buildx builders) with type=local backed by a named Docker
volume on the runner. Adds cache rotation step to prevent unbounded growth.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allows deploying to dev environment by pushing a "dev" tag.
Dev tags build with :dev Docker tag instead of :production.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>