# # 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"]