Files
2026-07-13 13:04:05 +08:00

30 lines
867 B
Docker

# ----- Build Stage -----
FROM node:lts-alpine AS builder
RUN corepack enable pnpm
WORKDIR /app
# Copy monorepo config and install dependencies
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.json ./
COPY packages/mcp ./packages/mcp
RUN pnpm install --frozen-lockfile
# Build the mcp package
RUN pnpm --filter @upstash/context7-mcp build
# ----- Production Stage -----
FROM node:lts-alpine
RUN corepack enable pnpm
WORKDIR /app
# Install production dependencies only
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages/mcp/package.json ./packages/mcp/
RUN pnpm install --frozen-lockfile --prod --filter @upstash/context7-mcp
# Copy built files from builder
COPY --from=builder /app/packages/mcp/dist ./packages/mcp/dist
WORKDIR /app/packages/mcp
EXPOSE 8080
CMD ["node", "dist/index.js", "--transport", "http", "--port", "8080"]