-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
executable file
·35 lines (26 loc) · 1.13 KB
/
Dockerfile
File metadata and controls
executable file
·35 lines (26 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM python:3.12-slim
WORKDIR /app
# Node.js (LTS) is needed to run npx-based MCP providers.
# git is needed by repository providers (clone + build before spawn).
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates git \
&& curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Install uv so that uvx-based MCP package providers work out of the box.
# uv installs its binaries to /root/.local/bin; add that to PATH.
RUN pip install --no-cache-dir uv
ENV PATH="/root/.local/bin:$PATH"
COPY server.py config.py process_runner.py builtin_tools.py tool_registry.py ./
COPY frontend/ ./frontend/
COPY handlers/ ./handlers/
# tools/ is NOT baked in — supply at runtime via a volume mount.
# See docker-compose.yml and docker-compose.override.yml.
ENV MCP_TOOL_CONFIG_DIR=/app/tools
ENV MCP_ENV_FILE=/app/.env
ENV MCPPROXY_FILES_DIR=/app/files
ENV MCPPROXY_REPOS_DIR=/app/repos
EXPOSE 8888 8889
CMD ["python", "server.py"]