yadnyeshkolte's picture
update
2d7e38f
FROM node:20-slim AS builder
WORKDIR /app
# Copy all package files
COPY backend/package*.json ./backend/
COPY mcp-servers/repo-analyzer/package*.json ./mcp-servers/repo-analyzer/
COPY mcp-servers/code-reader/package*.json ./mcp-servers/code-reader/
COPY mcp-servers/doc-generator/package*.json ./mcp-servers/doc-generator/
COPY mcp-servers/readme-scorer/package*.json ./mcp-servers/readme-scorer/
COPY mcp-servers/readme-improver/package*.json ./mcp-servers/readme-improver/
# Install all dependencies
RUN cd backend && npm install
RUN cd mcp-servers/repo-analyzer && npm install
RUN cd mcp-servers/code-reader && npm install
RUN cd mcp-servers/doc-generator && npm install
RUN cd mcp-servers/readme-scorer && npm install
RUN cd mcp-servers/readme-improver && npm install
# Copy source code
COPY . .
# Build all projects
RUN cd backend && npm run build
RUN cd mcp-servers/repo-analyzer && npm run build
RUN cd mcp-servers/code-reader && npm run build
RUN cd mcp-servers/doc-generator && npm run build
RUN cd mcp-servers/readme-scorer && npm run build
RUN cd mcp-servers/readme-improver && npm run build
# Final Stage
FROM node:20-slim
WORKDIR /app
# Copy builds
COPY --from=builder /app /app
# Hugging Face default port
EXPOSE 7860
# Start all 5 MCP servers + backend
RUN printf '#!/bin/bash\n\
echo "--- Starting MCP Servers ---"\n\
PORT=3002 GITHUB_TOKEN=$GITHUB_TOKEN node /app/mcp-servers/repo-analyzer/dist/index.mjs &\n\
PORT=3003 GITHUB_TOKEN=$GITHUB_TOKEN node /app/mcp-servers/code-reader/dist/index.mjs &\n\
PORT=3004 GEMINI_API_KEY=$GEMINI_API_KEY node /app/mcp-servers/doc-generator/dist/index.mjs &\n\
PORT=3005 GEMINI_API_KEY=$GEMINI_API_KEY node /app/mcp-servers/readme-scorer/dist/index.mjs &\n\
PORT=3006 GEMINI_API_KEY=$GEMINI_API_KEY node /app/mcp-servers/readme-improver/dist/index.mjs &\n\
echo "Waiting for MCP servers to bind..."\n\
sleep 3\n\
echo "--- Starting Backend on port 7860 ---"\n\
PORT=7860 GEMINI_API_KEY=$GEMINI_API_KEY GITHUB_TOKEN=$GITHUB_TOKEN node /app/backend/dist/index.js\n' > start.sh && \
chmod +x start.sh
CMD ["./start.sh"]