FROM python:3.12-slim WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ gcc \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # Copy requirement files COPY requirements/base.txt requirements/base.txt COPY requirements/db.txt requirements/db.txt COPY requirements/agent.txt requirements/agent.txt COPY requirements/supervisor.txt requirements/supervisor.txt COPY requirements/api.txt requirements/api.txt COPY requirements/cv_ui.txt requirements/cv_ui.txt COPY requirements/mcp_calendar.txt requirements/mcp_calendar.txt COPY requirements/mcp_gmail.txt requirements/mcp_gmail.txt # Install dependencies directly (no venv needed in container) # **NOTE** uv installation is needed for the gmail mcp server to work. # >>> it is installed in the base image /usr/local/bin/uv RUN pip install --no-cache-dir uv && \ pip install --no-cache-dir -r requirements/supervisor.txt && \ pip install --no-cache-dir -r requirements/db.txt && \ pip install --no-cache-dir -r requirements/agent.txt && \ pip install --no-cache-dir -r requirements/api.txt && \ pip install --no-cache-dir -r requirements/cv_ui.txt && \ pip install --no-cache-dir -r requirements/mcp_calendar.txt && \ pip install --no-cache-dir -r requirements/mcp_gmail.txt # Copy application code COPY src/ /app/src/ COPY secrets/ /app/secrets/ COPY .env /app/.env # Expose API port EXPOSE 8080 # Run FastAPI with uvicorn CMD ["uvicorn", "src.backend.api.app:app", "--host", "0.0.0.0", "--port", "8080"]