# chat/Dockerfile # Stage 1: build frontend FROM node:20-alpine AS build WORKDIR /app # copy frontend COPY chat-frontend/ ./chat-frontend/ WORKDIR /app/chat-frontend RUN npm install RUN npm run build # Stage 2: backend + serve frontend FROM node:20-alpine WORKDIR /app # Copy built frontend COPY --from=build /app/chat-frontend/dist ./frontend # Copy backend COPY chat-backend/package*.json ./chat-backend/ COPY chat-backend/server.js ./chat-backend/ WORKDIR /app/chat-backend RUN npm install # Expose backend WebSocket port and static frontend EXPOSE 3000 # Start both backend and frontend # Using simple Node backend and serve frontend via a tiny static server RUN npm install -g serve CMD ["node", "server.js"]