FROM node:20-alpine WORKDIR /app # Install dependencies first (better layer caching). COPY package.json package-lock.json ./ RUN npm ci --omit=dev # App source. COPY server ./server COPY public ./public ENV NODE_ENV=production ENV PORT=3000 ENV DATA_DIR=/app/data EXPOSE 3000 CMD ["node", "server/index.js"]