Spaces:
Runtime error
Runtime error
| # ------------------------------------------------------------ | |
| # Effici EPC Energy Prediction API (HF Spaces / Docker safe) | |
| # ------------------------------------------------------------ | |
| FROM python:3.12-slim | |
| # ------------------------------------------------------------ | |
| # Python runtime hygiene | |
| # ------------------------------------------------------------ | |
| ENV PYTHONDONTWRITEBYTECODE=1 | |
| ENV PYTHONUNBUFFERED=1 | |
| ENV PORT=7860 | |
| # ------------------------------------------------------------ | |
| # Working directory | |
| # ------------------------------------------------------------ | |
| WORKDIR /app | |
| # ------------------------------------------------------------ | |
| # System dependencies (minimal) | |
| # ------------------------------------------------------------ | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ------------------------------------------------------------ | |
| # Python dependencies | |
| # ------------------------------------------------------------ | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir --upgrade pip \ | |
| && pip install --no-cache-dir -r requirements.txt | |
| # ------------------------------------------------------------ | |
| # Application code | |
| # ------------------------------------------------------------ | |
| COPY app ./app | |
| COPY src ./src | |
| # ------------------------------------------------------------ | |
| # Credential bootstrap + server start | |
| # ------------------------------------------------------------ | |
| RUN printf '%s\n' \ | |
| '#!/bin/sh' \ | |
| 'set -e' \ | |
| '' \ | |
| 'echo "🚀 Starting Effici API"' \ | |
| '' \ | |
| '# -------------------------------' \ | |
| '# GCP credentials bootstrap' \ | |
| '# -------------------------------' \ | |
| 'if [ -n "$GOOGLE_APPLICATION_CREDENTIALS_JSON" ]; then' \ | |
| ' echo "$GOOGLE_APPLICATION_CREDENTIALS_JSON" > /tmp/gcp-creds.json' \ | |
| ' export GOOGLE_APPLICATION_CREDENTIALS=/tmp/gcp-creds.json' \ | |
| ' export CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=/tmp/gcp-creds.json' \ | |
| ' echo "✅ GCP credentials written to /tmp/gcp-creds.json"' \ | |
| 'else' \ | |
| ' echo "⚠️ GOOGLE_APPLICATION_CREDENTIALS_JSON not set"' \ | |
| 'fi' \ | |
| '' \ | |
| 'exec uvicorn app.main:app --host 0.0.0.0 --port ${PORT}' \ | |
| > /app/start.sh && chmod +x /app/start.sh | |
| # ------------------------------------------------------------ | |
| # Expose API port | |
| # ------------------------------------------------------------ | |
| EXPOSE 7860 | |
| # ------------------------------------------------------------ | |
| # Launch | |
| # ------------------------------------------------------------ | |
| CMD ["/app/start.sh"] | |