Dockerfile manual architecture selection for multiplatform build. Disable NPM Publish for testing

This commit is contained in:
PathToLife 2025-03-10 17:28:20 +13:00
parent 3b75e13287
commit b85036b78f
No known key found for this signature in database
GPG key ID: EC6B08753A67F776
2 changed files with 21 additions and 13 deletions

View file

@ -62,12 +62,22 @@ jobs:
tags: ${{ steps.image-metadata.outputs.tags }} tags: ${{ steps.image-metadata.outputs.tags }}
labels: ${{ steps.image-metadata.outputs.labels }} labels: ${{ steps.image-metadata.outputs.labels }}
containerfiles: ./Dockerfile containerfiles: ./Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7 archs: amd64,arm64v8,arm32v7
oci: true oci: true
# enable build layer caching between platforms
layers: true
# Webpack seems to use a lot of open files, increase the max open file limit to accomodate. # Webpack seems to use a lot of open files, increase the max open file limit to accomodate.
extra-args: | extra-args: |
--ulimit nofile=10000 --ulimit nofile=10000
- name: Publish to GHCR
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
- name: Upload Release Assets - name: Upload Release Assets
id: upload-release-assets id: upload-release-assets
@ -82,13 +92,6 @@ jobs:
- name: Publish to NPM - name: Publish to NPM
uses: JS-DevTools/npm-publish@v1 uses: JS-DevTools/npm-publish@v1
if: false
with: with:
token: ${{ secrets.NPM_TOKEN }} token: ${{ secrets.NPM_TOKEN }}
- name: Publish to GHCR
uses: redhat-actions/push-to-registry@v2
with:
tags: ${{ steps.build-image.outputs.tags }}
registry: ${{ env.REGISTRY }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}

View file

@ -12,19 +12,24 @@ COPY package.json .
COPY package-lock.json . COPY package-lock.json .
# Install dependencies # Install dependencies
# --ignore-scripts do not run grunt postinstall script as it depends on files other than package.json # --ignore-scripts prevents postinstall script (which runs grunt) as it depends on files other than package.json
RUN npm ci --ignore-scripts RUN npm ci --ignore-scripts
# Build the app # Copy files needed for postinstall and build
COPY . . COPY . .
# npm postinstall runs grunt, which depends on files other than package.json # npm postinstall runs grunt, which depends on files other than package.json
RUN npm run postinstall RUN npm run postinstall
# Build the app
RUN npm run build RUN npm run build
######################################### #########################################
# Package static build files into nginx # # Package static build files into nginx #
######################################### #########################################
FROM nginx:stable-alpine AS cyberchef # We are using Github Actions: redhat-actions/buildah-build@v2 which needs manual selection of arch in base image
# Remove TARGETARCH if docker buildx is supported in the CI release as --platform=$TARGETPLATFORM will be automatically set
ARG TARGETARCH
FROM ${TARGETARCH}/nginx:stable-alpine AS cyberchef
COPY --from=builder /app/build/prod /usr/share/nginx/html/ COPY --from=builder /app/build/prod /usr/share/nginx/html/