FROM node:20-bookworm-slim@sha256:2cf067cfed83d5ea958367df9f966191a942351a2df77d6f0193e162b5febfc0 WORKDIR /app ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright RUN apt-get update && apt-get install -y --no-install-recommends iputils-ping postgresql-client \ && rm -rf /var/lib/apt/lists/* COPY package.json package-lock.json ./ RUN npm ci RUN npx playwright install --with-deps chromium && chmod -R 755 /ms-playwright COPY . . RUN npm run build RUN mkdir -p /app/backups /app/.next/cache \ && chown -R node:node /app/backups /app/.next/cache EXPOSE 3000 USER node HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=3 \ CMD node -e "fetch('http://127.0.0.1:3000/api/health').then((res)=>process.exit(res.status===200?0:1)).catch(()=>process.exit(1))" CMD ["npm", "run", "start"]