diff --git a/.github/workflows/release-image.yml b/.github/workflows/release-image.yml index c43ba34..7a5c550 100644 --- a/.github/workflows/release-image.yml +++ b/.github/workflows/release-image.yml @@ -31,9 +31,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Docker Buildx - run: docker buildx create --use --name ci-builder 2>/dev/null || true - - id: registry name: Resolve Gitea registry host # GITHUB_SERVER_URL inside act_runner resolves to the *internal* Gitea @@ -64,28 +61,28 @@ jobs: echo "migrator_image=${host}/${owner}/${repo}-migrator:${image_tag}" >> "$GITHUB_OUTPUT" # Guardrail anchor: target: runner + # Use plain `docker build` against the host daemon (DooD) instead of + # docker/build-push-action's buildx+buildkit container, which fails on + # the QNAP host with `runc ... fchmodat2 AT_EMPTY_PATH: no such file or + # directory` (older kernel rejects newer buildkit's runc syscalls). - name: Build and push app image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile.prod - target: runner - push: true - tags: ${{ steps.vars.outputs.app_image }} - cache-from: type=gha,scope=app - cache-to: type=gha,mode=max,scope=app + run: | + docker build \ + -f ./Dockerfile.prod \ + --target runner \ + -t "${{ steps.vars.outputs.app_image }}" \ + . + docker push "${{ steps.vars.outputs.app_image }}" # Guardrail anchor: target: migrator - name: Build and push migrator image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile.prod - target: migrator - push: true - tags: ${{ steps.vars.outputs.migrator_image }} - cache-from: type=gha,scope=migrator - cache-to: type=gha,mode=max,scope=migrator + run: | + docker build \ + -f ./Dockerfile.prod \ + --target migrator \ + -t "${{ steps.vars.outputs.migrator_image }}" \ + . + docker push "${{ steps.vars.outputs.migrator_image }}" - name: Release summary run: |