FROM node:20-alpine AS dashboard-build WORKDIR /dashboard COPY dashboard/package*.json ./ RUN npm ci COPY dashboard/ . RUN npm run build FROM python:3.12-alpine RUN apk add --no-cache postgresql-client curl WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY app_server.py . COPY --from=dashboard-build /dashboard/dist /app/dashboard/dist ENV PORT=8080 ENV DIST_DIR=/app/dashboard/dist ENV PYTHONUNBUFFERED=1 EXPOSE 8080 CMD ["python", "app_server.py"]