FROM python:3.12-slim AS backend-deps ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 WORKDIR /app COPY requirements.txt /app/requirements.txt COPY server/requirements.txt /app/server/requirements.txt RUN pip install --upgrade pip && \ pip install -r /app/requirements.txt && \ pip install -r /app/server/requirements.txt # ---------- GUI build stage ---------- FROM node:20-slim AS gui-build WORKDIR /gui COPY gui/package.json gui/package-lock.json ./ RUN npm ci COPY gui/ ./ ENV VITE_API_BASE_URL="" RUN npm run build # ---------- Final runtime ---------- FROM python:3.12-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PYTHONPATH=/app WORKDIR /app RUN apt-get update && \ apt-get install -y --no-install-recommends redis-server nginx && \ rm -rf /var/lib/apt/lists/* COPY --from=backend-deps /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages COPY --from=backend-deps /usr/local/bin /usr/local/bin COPY src /app/src COPY server /app/server COPY config /app/config COPY workflows /app/workflows COPY codebooks /app/codebooks COPY data /app/data COPY --from=gui-build /gui/dist /app/gui-dist COPY nginx.conf /etc/nginx/nginx.conf COPY supervisord-hf.conf /app/supervisord-hf.conf RUN mkdir -p /app/server/workflows /app/server/codebooks /app/server/data /app/server/runs EXPOSE 7860 CMD ["supervisord", "-c", "/app/supervisord-hf.conf"]