diff --git a/Dockerfile b/Dockerfile index 2c90013..e53577f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,14 @@ FROM node:20-alpine WORKDIR /app +# The npm version bundled with node:20-alpine has a known "Exit handler +# never called!" bug under slow/unreliable networks (common on VPS hosts). +# Upgrading npm first, plus more tolerant retry/timeout settings, avoids it. +RUN npm install -g npm@11 \ + && npm config set fetch-retries 5 \ + && npm config set fetch-retry-mintimeout 20000 \ + && npm config set fetch-timeout 300000 + COPY package.json package-lock.json ./ RUN npm ci --omit=dev && node -e "require('express')"