Spaces:
Sleeping
Sleeping
| # FarmHelp - Hugging Face Spaces Docker | |
| # Multi-stage: build frontend, then run backend + static SPA on port 7860 | |
| # --------------------------------------------------------------------------- | |
| # Stage 1: Frontend build (Vite + React) | |
| # --------------------------------------------------------------------------- | |
| FROM node:20-alpine AS frontend | |
| WORKDIR /app/frontend | |
| COPY frontend/package.json frontend/package-lock.json ./ | |
| RUN npm ci | |
| COPY frontend/ ./ | |
| # Same-origin API in production (backend serves both API and static) | |
| ENV VITE_API_BASE_URL="" | |
| RUN npm run build | |
| # --------------------------------------------------------------------------- | |
| # Stage 2: Backend + static files | |
| # --------------------------------------------------------------------------- | |
| FROM python:3.10-slim | |
| WORKDIR /app/backend | |
| # System deps | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gcc \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Python dependencies | |
| COPY backend/requirements.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Backend application | |
| COPY backend/ ./ | |
| # Frontend build from stage 1 | |
| COPY --from=frontend /app/frontend/dist /app/static | |
| # --------------------------------------------------------------------------- | |
| # Environment variables (Hugging Face / production) | |
| # Override via HF Space Secrets or Docker run -e if needed. | |
| # --------------------------------------------------------------------------- | |
| ENV PORT=7860 | |
| ENV ENVIRONMENT=production | |
| ENV STATIC_DIR=/app/static | |
| # Database URL will be set by start.sh based on available storage | |
| ENV DATABASE_URL=sqlite:////app/backend/farmhelp.db | |
| ENV LOG_LEVEL=INFO | |
| ENV LOG_FILE=/app/backend/logs/app.log | |
| ENV RATE_LIMIT_PER_MINUTE=60 | |
| ENV WEATHER_CACHE_HOURS=6 | |
| ENV MANDI_CACHE_HOURS=24 | |
| ENV CORS_ORIGINS='["*"]' | |
| ENV OPEN_METEO_API_URL=https://api.open-meteo.com/v1/forecast | |
| ENV DATA_GOV_IN_API_URL=https://api.data.gov.in/resource | |
| ENV DATA_GOV_IN_API_KEY="" | |
| ENV DEBUG=false | |
| ENV APP_NAME="Farm Help API" | |
| ENV APP_VERSION=1.0.0 | |
| EXPOSE 7860 | |
| # Make startup script executable (already copied with backend/) | |
| RUN chmod +x /app/backend/start.sh | |
| # Run startup script | |
| CMD ["/app/backend/start.sh"] | |