# Base image FROM node:20-alpine # Install dependencies WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN npm ci --only=production # Copy application code COPY . . # Copy Prisma schema and client COPY prisma ./prisma # Create non-root user RUN addgroup -g 1001 -S mcp && \ adduser -u 1001 -S mcp -G mcp # Create database directory RUN mkdir -p /app/db && \ chown -R mcp:mcp /app USER mcp WORKDIR /app # Expose (not needed for stdio, but useful for SSE variant) EXPOSE 3000 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD node -e "console.log('healthy')" || exit 1 # Start MCP server CMD ["node", "index.js"]