| 1234567891011121314151617181920212223 |
- FROM node:24-bookworm-slim
- WORKDIR /app
- ENV NODE_ENV=production
- COPY package.json ./
- COPY src ./src
- COPY public ./public
- RUN mkdir -p /data && chown -R node:node /data /app
- USER node
- EXPOSE 3000
- EXPOSE 25
- EXPOSE 465
- EXPOSE 587
- EXPOSE 2525
- VOLUME ["/data"]
- HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
- CMD node -e "fetch('http://127.0.0.1:3000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
- CMD ["node", "src/server.js"]
|