Skip to main content
Glama
Dockerfile2.96 kB
# syntax=docker/dockerfile:1.4 ######################################## # image ######################################## FROM node:24-slim AS base ######################################## # dependencies ######################################## FROM base AS deps WORKDIR /app # Install system dependencies for native modules RUN apt-get update && apt-get install -y \ python3 \ make \ g++ \ && rm -rf /var/lib/apt/lists/* # activate Corepack for pnpm RUN corepack enable # need manifests from monorepo COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./ COPY packages packages COPY plugins plugins COPY config config COPY patches patches # this tells Docker’s BuildKit to carve out a persistent, named cache volume \ -no-frozen-lockfile tells pnpm not to error out if pnpm-lock.yaml is out of sync with package.json files. It will install anyway (and may update the lockfile). --shamefully-hoist forces pnpm to flatten all binaries and dependencies into the top-level node_modules/.bin and node_modules folders RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \ pnpm install --no-frozen-lockfile --shamefully-hoist ######################################## # builder ######################################## FROM deps AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . RUN pnpm run build ######################################## # runner ######################################## FROM base AS runner WORKDIR /app # Install system dependencies for native modules RUN apt-get update && apt-get install -y \ python3 \ make \ g++ \ && rm -rf /var/lib/apt/lists/* RUN corepack enable COPY --from=deps /app/node_modules ./node_modules COPY pnpm-workspace.yaml lerna.json package.json ./ COPY --from=builder /app/config config COPY --from=builder /app/plugins plugins COPY --from=builder /app/packages/server/package.json packages/server/package.json COPY --from=builder /app/packages/server/dist packages/server/dist COPY --from=builder /app/packages/core/package.json packages/core/package.json COPY --from=builder /app/packages/core/dist packages/core/dist COPY --from=builder /app/packages/database/package.json packages/database/package.json COPY --from=builder /app/packages/database/dist packages/database/dist COPY --from=builder /app/packages/agent/package.json packages/agent/package.json COPY --from=builder /app/packages/agent/dist packages/agent/dist COPY --from=builder /app/packages/metrics/package.json packages/metrics/package.json COPY --from=builder /app/packages/metrics/dist packages/metrics/dist COPY --from=builder /app/packages/workers/package.json packages/workers/package.json COPY --from=builder /app/packages/workers/dist packages/workers/dist ENV NODE_ENV=production EXPOSE 3002 CMD ["pnpm", "run", "start:prod"]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KasarLabs/snak'

If you have feedback or need assistance with the MCP directory API, please join our Discord server