diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 772a3ba0eccc2b257376c6cfa2dd9628295dd311..0ec5daa0718cf34d40ce3a8ad875432a49b1b074 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -99,23 +99,23 @@ jobs: mv /tmp/.buildx-cache-new /tmp/.buildx-cache - # # Install the cosign tool except on PR - # # https://github.com/sigstore/cosign-installer - # - name: Install cosign - # if: github.event_name != 'pull_request' - # uses: sigstore/cosign-installer@v3.3.0 - # with: - # cosign-release: 'v2.2.2' - - # # Sign the resulting Docker image digest except on PRs. - # # This will only write to the public Rekor transparency log when the Docker - # # repository is public to avoid leaking data. If you would like to publish - # # transparency data even for private images, pass --force to cosign below. - # # https://github.com/sigstore/cosign - # - name: Sign the published Docker image - # if: ${{ github.event_name != 'pull_request' }} - # env: - # COSIGN_EXPERIMENTAL: "true" - # # This step uses the identity token to provision an ephemeral certificate - # # against the sigstore community Fulcio instance. - # run: echo "${{ steps.meta.outputs.tags }}" | xargs -I {} cosign sign {}@${{ steps.build-and-push.outputs.digest }} + # Install the cosign tool except on PR + # https://github.com/sigstore/cosign-installer + - name: Install cosign + if: ${{ github.event_name != 'pull_request' }} + uses: sigstore/cosign-installer@v3 + # with: + # cosign-release: 'v2.2.2' + + # Sign the resulting Docker image digest except on PRs. + # This will only write to the public Rekor transparency log when the Docker + # repository is public to avoid leaking data. If you would like to publish + # transparency data even for private images, pass --force to cosign below. + # https://github.com/sigstore/cosign + - name: Sign the published Docker image + if: ${{ github.event_name != 'pull_request' }} + env: + COSIGN_EXPERIMENTAL: "true" + # This step uses the identity token to provision an ephemeral certificate + # against the sigstore community Fulcio instance. + run: echo "${{ steps.meta.outputs.tags }}" | grep -E '^(.+):(.+)-(.+)-(.+)$' | xargs -I {} cosign sign --yes {}@${{ steps.build-and-push.outputs.digest }} diff --git a/Dockerfile b/Dockerfile index 70f9e51a8281e1b5c694bebd974a12095f0aee9d..c338180f633220d2c47010464945e626eafbe81e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,21 @@ # VERSIONS ARG NODE_VERSION=20.11.1 -ARG NPM_VERSION=10.4.0 ARG NGINX_VERSION=1.25.4 # --------------> The builder image FROM node:$NODE_VERSION AS builder ENV NODE_ENV production WORKDIR /app -ARG NPM_TOKEN +# Install NPM with version +ARG NPM_VERSION=10.5.0 +RUN npm install -g npm@$NPM_VERSION +# Install dependencies COPY package*.json ./ +ARG NPM_TOKEN RUN echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc && \ - npm install -g npm@$NPM_VERSION && \ npm ci --omit=dev && \ rm -f .npmrc +# Build app COPY . . RUN npm run build