Spaces:
Sleeping
Sleeping
| # Use Python 3.11 slim image | |
| FROM python:3.11-slim | |
| # Set working directory | |
| WORKDIR /app | |
| # Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| # gcc \ | |
| # postgresql-client \ | |
| # && rm -rf /var/lib/apt/lists/* | |
| # Copy requirements first for better caching | |
| COPY requirements.txt . | |
| # Install Python dependencies | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Copy application code | |
| COPY . . | |
| # Expose port 7860 (Hugging Face Spaces default) | |
| EXPOSE 7860 | |
| # Run database migrations and start the application | |
| CMD alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860 | |
| # ========================= | |
| # Base Image | |
| # ========================= | |
| FROM python:3.11-slim | |
| # Set working directory | |
| WORKDIR /app | |
| # ========================= | |
| # Install system dependencies | |
| # ========================= | |
| RUN apt-get update && apt-get install -y \ | |
| # gcc \ | |
| # libpq-dev \ | |
| # postgresql-client \ | |
| # && rm -rf /var/lib/apt/lists/* | |
| # ========================= | |
| # Copy requirements first (cache optimization) | |
| # ========================= | |
| COPY requirements.txt . | |
| # Upgrade pip and install Python dependencies | |
| RUN pip install --upgrade pip | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # ========================= | |
| # Copy app source code | |
| # ========================= | |
| COPY src/ ./src | |
| # Copy alembic config | |
| COPY alembic.ini . | |
| # ========================= | |
| # Copy specs folder to match expected absolute path | |
| # ========================= | |
| COPY specs/ /specs/ | |
| # ========================= | |
| # Expose port (for FastAPI / Hugging Face Spaces) | |
| # ========================= | |
| EXPOSE 7860 | |
| # ========================= | |
| # Run migrations and start app | |
| # ========================= | |
| CMD alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860 | |
| //////////////////// | |
| Use slim Python 3.11 image | |
| FROM python:3.11-slim | |
| Set working directory inside container | |
| WORKDIR /app | |
| Install system dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| gcc \ | |
| libpq-dev \ | |
| postgresql-client \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN pip uninstall -y bcrypt && \ | |
| pip install bcrypt==4.0.1 passlib[bcrypt]==1.7.4 | |
| Copy and install Python dependencies | |
| COPY requirements.txt . | |
| RUN pip install --upgrade pip | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| Copy source code | |
| COPY src/ ./src | |
| Copy Alembic migrations and config | |
| COPY src/alembic/ ./alembic/ | |
| COPY alembic.ini . | |
| Copy specs (MCP tools contracts) | |
| COPY specs/ ./specs/ | |
| Set environment variable for working directory (optional, helps paths) | |
| ENV PROJECT_ROOT=/app | |
| Expose port | |
| EXPOSE 7860 | |
| Run migrations and start the app | |
| CMD ["sh", "-c", "alembic upgrade head && uvicorn src.main:app --host 0.0.0.0 --port 7860 --reload"] | |