readmere-engine / Dockerfile
yadnyeshkolte's picture
update
f33252d
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/
# 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
# 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
# Final Stage
FROM node:20-slim
WORKDIR /app
# Install PM2 and HTTP-Proxy
RUN npm install -g pm2
# Copy builds
COPY --from=builder /app /app
# Hugging Face default port
ENV PORT=7860
EXPOSE 7860
# Create start script with DIFFERENT PORTS for each agent
RUN echo '#!/bin/bash' > start.sh && \
echo 'PORT=3002 pm2 start /app/mcp-servers/repo-analyzer/dist/index.mjs --name "repo-analyzer"' >> start.sh && \
echo 'PORT=3003 pm2 start /app/mcp-servers/code-reader/dist/index.mjs --name "code-reader"' >> start.sh && \
echo 'PORT=3004 pm2 start /app/mcp-servers/doc-generator/dist/index.mjs --name "doc-generator"' >> start.sh && \
echo 'PORT=7860 pm2-runtime start /app/backend/dist/index.js --name "backend"' >> start.sh && \
chmod +x start.sh
CMD ["./start.sh"]