FROM node:22-alpine AS builder WORKDIR /app # Copy UI package files and install COPY ui/package*.json ./ui/ RUN cd ui && npm ci --legacy-peer-deps # Copy UI source + shared server types (needed for $types alias resolution) COPY ui/ ./ui/ COPY server/ ./server/ WORKDIR /app/ui # adapter-auto picks adapter-node when NODE_ENV=production in a container ENV NODE_ENV=production RUN npm run build # --- Runtime stage --- FROM node:22-alpine WORKDIR /app COPY --from=builder /app/ui/build ./build COPY --from=builder /app/ui/package*.json ./ RUN npm ci --omit=dev --legacy-peer-deps EXPOSE 3001 ENV PORT=3001 ENV HOST=0.0.0.0 CMD ["node", "build"]