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
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY server.py .
COPY --from=dashboard-build /dashboard/dist /app/dashboard/dist
ENV PORT=8080
ENV DIST_DIR=/app/dashboard/dist
EXPOSE 8080
CMD ["python", "server.py"]
