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 --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"]
