Spaces:
Sleeping
Sleeping
| # ββ Base image βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FROM python:3.11-slim | |
| # ββ Metadata βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| LABEL maintainer="SpectraQual Team" | |
| LABEL description="SpectraQual β PCB Quality Control OpenEnv Environment" | |
| LABEL version="1.0.0" | |
| # ββ System deps βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ββ Working directory βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| WORKDIR /app | |
| # ββ Install Python dependencies first (layer cache) ββββββββββββββββββββββββββ | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # ββ Copy source code ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY . . | |
| # ββ Environment variables (overridden at runtime) βββββββββββββββββββββββββββββ | |
| ENV API_BASE_URL="https://openrouter.ai/api/v1" | |
| ENV MODEL_NAME="meta-llama/llama-3.3-70b-instruct" | |
| ENV HF_TOKEN="" | |
| # ββ Expose API port (HF Spaces default) βββββββββββββββββββββββββββββββββββββββ | |
| EXPOSE 7860 | |
| # ββ Health check ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \ | |
| CMD curl -f http://localhost:7860/ || exit 1 | |
| # ββ Default command: launch FastAPI server βββββββββββββββββββββββββββββββ | |
| CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"] | |