# Stage 1 — install production dependencies FROM node:22-alpine AS deps WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev # Stage 2 — final image FROM node:22-alpine WORKDIR /app # Copy dependencies from previous stage COPY --from=deps /app/node_modules ./node_modules # Copy application files COPY server.js ./ COPY public/ ./public/ # Runtime config ENV PORT=3850 ENV SESSIONS_DIR=/sessions EXPOSE 3850 # Run as non-root for security USER node CMD ["node", "server.js"]