myrmidon / python /Dockerfile.mcp
tek Atrust
chore(deploy): build monolithic server for Hugging Face
d5ef46f
Raw
History Blame Contribute Delete
1.5 kB
# 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"]