fix: use legacy Docker build to avoid permission errors in CI (#206)

- Replace BuildKit with legacy docker build (DOCKER_BUILDKIT=0)
- Use plain docker login instead of docker/login-action
- Remove BuildKit setup action entirely
- Works with VFS storage driver on unprivileged runners

Reviewed-on: graham/towerops-web#206
This commit is contained in:
Graham McIntire 2026-03-28 12:16:20 -05:00 committed by graham
parent a3cdf02114
commit 2a84df471d

View file

@ -106,18 +106,9 @@ jobs:
timeout 30 bash -c 'until docker info > /dev/null 2>&1; do sleep 1; done'
fi
- name: Set up Docker Buildx
uses: https://github.com/docker/setup-buildx-action@v3
with:
driver: docker
install: true
- name: Log in to Container Registry
uses: https://github.com/docker/login-action@v3
with:
registry: ${{ secrets.REGISTRY_URL }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login ${{ secrets.REGISTRY_URL }} -u "${{ secrets.REGISTRY_USER }}" --password-stdin
- name: Generate image tag
id: tag
@ -130,16 +121,22 @@ jobs:
echo "Full image tag: ${TAG}"
- name: Build and push Docker image
uses: https://github.com/docker/build-push-action@v5
with:
context: .
file: k8s/Dockerfile
push: true
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.tag.outputs.tag }}
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:production
build-args: |
MIX_ENV=prod
env:
DOCKER_BUILDKIT: 0
run: |
IMAGE_TAG="${{ steps.tag.outputs.tag }}"
# Build image
docker build \
--file k8s/Dockerfile \
--build-arg MIX_ENV=prod \
--tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG} \
--tag ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:production \
.
# Push both tags
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${IMAGE_TAG}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:production
- name: Update deployment manifest
run: |