-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathDockerfile
More file actions
39 lines (29 loc) · 1.16 KB
/
Copy pathDockerfile
File metadata and controls
39 lines (29 loc) · 1.16 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
36
37
38
39
FROM node:20-slim
# Install Python 3 + uv (for uvx-based MCP servers like Google Workspace, Zotero, MCP Research)
# Also install curl for uv installer, git which some npx packages need,
# and libatomic1 which rocksdb-native's prebuild links against
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-venv curl git libatomic1 \
&& rm -rf /var/lib/apt/lists/* \
&& curl -LsSf https://astral.sh/uv/install.sh | sh
# Add uv/uvx to PATH
ENV PATH="/root/.local/bin:${PATH}"
WORKDIR /app
# Install Node dependencies
COPY package*.json ./
RUN npm ci --omit=dev
# Copy server code and scripts needed at runtime
COPY servers/ servers/
COPY scripts/init-db.js scripts/init-db.js
COPY scripts/server-registry.js scripts/server-registry.js
COPY scripts/generate-mcp-config.js scripts/generate-mcp-config.js
# Initialize database
RUN mkdir -p data && node scripts/init-db.js
# Ensure npm/npx cache is writable for runtime package downloads
RUN mkdir -p /root/.npm && chmod -R 755 /root/.npm
# Expose gateway port
EXPOSE 3001
ENV CROW_TRANSPORT=http
ENV CROW_GATEWAY_PORT=3001
ENV CROW_DB_PATH=/app/data/crow.db
CMD ["node", "servers/gateway/index.js"]