|
- FROM python:3.12-slim
-
- WORKDIR /app
-
- # Poster rendering needs:
- # - libcairo2 (cairosvg ↔ Cairo bindings) for SVG → PNG raster
- # - fonts-dejavu-core for the DejaVuSans-Bold font used by PostersService
- # These add ~15 MB to the image but keep poster generation in-process and fast.
- RUN apt-get update && \
- apt-get install -y --no-install-recommends \
- libcairo2 \
- fonts-dejavu-core \
- && rm -rf /var/lib/apt/lists/*
-
- RUN pip install --no-cache-dir \
- fastapi \
- uvicorn \
- fastf1 \
- python-slugify \
- pillow \
- cairosvg
-
- COPY cdn-api.py circuits_service.py ergast_service.py posters_service.py ./
- COPY models/ ./models/
- COPY circuits/ ./circuits/
-
- EXPOSE 8000
-
- CMD ["uvicorn", "cdn-api:app", "--host", "0.0.0.0", "--port", "8000"]
|