FROM node:22-alpine WORKDIR /app ENV NODE_ENV=production ENV PORT=80 ENV HOST=0.0.0.0 ENV DATA_DIR=/app/data # Copy package metadata COPY package.json ./ # Copy server, client, and seed data COPY server ./server COPY public ./public COPY data ./data # Setup storage directory and assign node user ownership RUN mkdir -p /app/data && chown -R node:node /app USER node EXPOSE 80 HEALTHCHECK --interval=15s --timeout=5s --start-period=5s --retries=3 \ CMD wget --quiet --tries=1 --spider http://127.0.0.1:80/api/health || exit 1 CMD ["node", "server/index.js"]