diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..214c29d --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmjs.org/ diff --git a/Dockerfile b/Dockerfile index 6de8f8c..cac9243 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,9 +9,16 @@ ARG NODE_VERSION=22 # --- deps: Produktions- und Build-Abhängigkeiten installieren ----------------- FROM node:${NODE_VERSION}-alpine AS deps WORKDIR /app -# Nur Manifeste kopieren -> Layer-Cache bleibt stabil, solange sich Deps nicht ändern. -COPY package.json package-lock.json ./ -RUN npm ci +# node:alpine bündelt npm 10, das bei plattformfremden optionalen Transitiv-Deps +# (z. B. @node-rs/argon2 -> *-wasm32-wasi / @emnapi) strenger ist. npm 11 wie im +# feuerwehr_dashboard verwenden. +RUN npm install -g npm@11 +# .npmrc erzwingt das ÖFFENTLICHE npm-Registry. Der committete Lockfile wurde +# gegen einen internen Mirror erzeugt (resolved-URLs zeigen dorthin, daher der +# npm-ci-Fehler) und wird im Build bewusst NICHT verwendet — Auflösung frisch aus +# der öffentlichen Registry (gleiches Vorgehen wie feuerwehr_dashboard/frontend). +COPY package.json .npmrc ./ +RUN npm install --no-audit --no-fund # --- builder: Next.js im Standalone-Modus bauen ------------------------------- FROM node:${NODE_VERSION}-alpine AS builder