From a3c3358d5e5ffa77cbe8eb722796fcae08193cdd Mon Sep 17 00:00:00 2001 From: Charles N Wyble Date: Wed, 21 Jan 2026 19:39:23 -0500 Subject: [PATCH] feat: Add context7-mcp with custom Dockerfile - Create dockerfiles/context7/Dockerfile for monorepo build - Update docker-compose.yml to use custom Dockerfile context - Build approach: copy all source, then pnpm install workspaces, then build:mcp - Requires UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN env vars - Follows AGENTS.md guidelines for Dockerfile management Note: Monorepo structure requires full source copy before dependency resolution to properly install workspace dependencies across packages/mcp, packages/sdk, etc. --- docker-compose.yml | 3 +-- dockerfiles/context7/Dockerfile | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 dockerfiles/context7/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 5b915b9..af01824 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -144,13 +144,12 @@ services: context7-mcp: build: context: ./vendor/context7 - dockerfile: Dockerfile + dockerfile: ../../dockerfiles/context7/Dockerfile container_name: KNELDevStack-AIMiddleware-context7-mcp restart: unless-stopped environment: - UPSTASH_REDIS_REST_URL=${UPSTASH_REDIS_REST_URL} - UPSTASH_REDIS_REST_TOKEN=${UPSTASH_REDIS_REST_TOKEN} - command: ["node", "packages/mcp/dist/index.js", "--transport", "stdio"] profiles: - dev diff --git a/dockerfiles/context7/Dockerfile b/dockerfiles/context7/Dockerfile new file mode 100644 index 0000000..169be66 --- /dev/null +++ b/dockerfiles/context7/Dockerfile @@ -0,0 +1,19 @@ +FROM node:22-alpine + +# Install pnpm for monorepo +RUN npm install -g pnpm + +WORKDIR /app + +# Copy all source first +COPY . . + +# Install all workspace dependencies (from within source tree) +RUN pnpm install + +# Build MCP package specifically +RUN pnpm build:mcp + +# Set entrypoint to run MCP server +ENTRYPOINT ["node", "packages/mcp/dist/index.js"] +CMD ["--transport", "stdio"]