| # MCP Service - Lightweight HTTP-based microservice | |
| FROM python:3.12-slim | |
| WORKDIR /app | |
| # Install uv and git | |
| RUN pip install --no-cache-dir uv && \ | |
| apt-get update && \ | |
| apt-get install -y git && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Copy pyproject.toml for dependency installation | |
| COPY pyproject.toml . | |
| # Install only MCP dependencies to system python | |
| RUN uv pip install --system --group mcp | |
| # Create directory structure | |
| RUN mkdir -p src/mcp_server/features/projects src/mcp_server/features/developer src/mcp_server/features/marketing | |
| # Copy the core MCP server code | |
| COPY src/mcp_server/ src/mcp_server/ | |
| COPY src/__init__.py src/ | |
| # Copy the server files MCP needs for HTTP communication and Developer Tools | |
| # We copy specific directories to maintain a lean image while ensuring all dependencies are present | |
| COPY src/server/__init__.py src/server/ | |
| COPY src/server/utils/ src/server/utils/ | |
| COPY src/server/repositories/ src/server/repositories/ | |
| COPY src/server/config/ src/server/config/ | |
| COPY src/server/services/ src/server/services/ | |
| COPY src/server/auth/ src/server/auth/ | |
| COPY src/server/schemas/ src/server/schemas/ | |
| COPY src/server/models/ src/server/models/ | |
| # Set environment variables | |
| ENV PYTHONPATH="/app/src:/app" | |
| ENV PYTHONUNBUFFERED=1 | |
| # Expose MCP port | |
| ARG ARCHON_MCP_PORT=8051 | |
| ENV ARCHON_MCP_PORT=${ARCHON_MCP_PORT} | |
| EXPOSE 8051 | |
| # Add and use entrypoint script | |
| COPY docker-entrypoint-mcp.sh /app/ | |
| RUN chmod +x /app/docker-entrypoint-mcp.sh | |
| CMD ["/app/docker-entrypoint-mcp.sh"] | |