FROM python:3.11-slim WORKDIR /app # Install system dependencies for geopandas + GDAL RUN apt-get update && apt-get install -y \ gdal-bin \ libgdal-dev \ g++ \ && rm -rf /var/lib/apt/lists/* # Copy requirements first for better layer caching COPY requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Create directories for logs (ephemeral but prevents errors)s RUN mkdir -p logs # Cloud Run injects PORT environment variable ENV PORT=7860 # Expose port for documentation EXPOSE 7860 # Single worker - your ONNX models are too large for multiple workers CMD exec uvicorn main:app --host 0.0.0.0 --port ${PORT} --workers 1 --timeout-keep-alive 300