diff --git a/.github/workflows/deploy-images-feat-saas.yml b/.github/workflows/deploy-images-feat-saas.yml index d287670f3..a666430f7 100644 --- a/.github/workflows/deploy-images-feat-saas.yml +++ b/.github/workflows/deploy-images-feat-saas.yml @@ -20,6 +20,11 @@ jobs: with: fetch-depth: 0 + - name: Set up QEMU (for multi-arch emulation) + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - name: Set up Docker Buildx (multiarch) uses: docker/setup-buildx-action@v3 with: @@ -67,4 +72,4 @@ jobs: docker compose down docker compose pull docker compose up -d - docker system prune -af \ No newline at end of file + docker system prune -af diff --git a/server/Dockerfile b/server/Dockerfile index 354074630..7abde1c67 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -14,7 +14,9 @@ RUN npm run build FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-alpine AS deps WORKDIR /app COPY package*.json ./ -RUN npm ci --omit=dev +# For arm64 under QEMU, alpine + musl can trigger Illegal instruction with npm ci. +# Use npm install for broader compatibility. +RUN npm install --omit=dev ## Runtime image (target platform) FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-alpine