Harden frontend Docker npm fetch resilience
This commit is contained in:
@@ -1,10 +1,21 @@
|
||||
FROM node:22-alpine
|
||||
|
||||
ARG NPM_REGISTRY=https://registry.npmjs.org/
|
||||
ARG NPM_FETCH_RETRIES=5
|
||||
ARG NPM_FETCH_RETRY_MINTIMEOUT=20000
|
||||
ARG NPM_FETCH_RETRY_MAXTIMEOUT=120000
|
||||
ARG NPM_FETCH_TIMEOUT=300000
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json /app/package.json
|
||||
COPY package-lock.json /app/package-lock.json
|
||||
RUN npm ci
|
||||
RUN npm config set registry "${NPM_REGISTRY}" \
|
||||
&& npm config set fetch-retries "${NPM_FETCH_RETRIES}" \
|
||||
&& npm config set fetch-retry-mintimeout "${NPM_FETCH_RETRY_MINTIMEOUT}" \
|
||||
&& npm config set fetch-retry-maxtimeout "${NPM_FETCH_RETRY_MAXTIMEOUT}" \
|
||||
&& npm config set fetch-timeout "${NPM_FETCH_TIMEOUT}" \
|
||||
&& NODE_OPTIONS=--dns-result-order=ipv4first npm ci --no-audit
|
||||
RUN chown -R node:node /app
|
||||
|
||||
COPY --chown=node:node tsconfig.json /app/tsconfig.json
|
||||
|
||||
Reference in New Issue
Block a user