# ---- frontend build ---- FROM node:20-alpine AS frontend WORKDIR /fe COPY frontend/package.json frontend/package-lock.json* ./ RUN npm install --no-audit --no-fund COPY frontend/ ./ RUN npm run build # ---- runtime ---- FROM python:3.11-slim ENV PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 \ HF_HOME=/tmp/hf \ HF_HUB_CACHE=/tmp/hf RUN apt-get update && apt-get install -y --no-install-recommends \ git && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt # Force fresh resolution of git+main transformers each build so newly merged # architectures (gemma4_assistant, qwen3_5_*, deepseek_v4, …) land quickly. # Bumping TRANSFORMERS_REFRESH busts the Docker layer cache. ARG TRANSFORMERS_REFRESH=2026-05-07-1 RUN pip install "transformers @ git+https://github.com/huggingface/transformers.git@main" COPY backend/ ./backend/ COPY --from=frontend /fe/dist ./static/ EXPOSE 7860 CMD ["uvicorn", "backend.main:app", "--host", "0.0.0.0", "--port", "7860"]