FROM dev.data-turing.cn:14443/library/node:20-bookworm-slim WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 COPY package*.json ./ RUN set -eux; \ npm install --registry=http://192.168.1.103:4873 --omit=dev --no-audit --no-fund --loglevel verbose; \ if grep -R "Exit handler never called" /root/.npm/_logs 2>/dev/null; then \ cat /root/.npm/_logs/*debug-0.log; \ exit 1; \ fi RUN node -e "require('express'); require('better-sqlite3'); console.log('runtime dependencies ok')" COPY src ./src COPY views ./views COPY public ./public COPY DESIGN.md ./DESIGN.md RUN mkdir -p /app/data EXPOSE 3000 CMD ["node", "src/index.js"]