# LangGraph Server - Production # Multi-stage build for smaller image FROM node:20-slim AS deps WORKDIR /app RUN npm install -g pnpm@10 COPY package.json pnpm-lock.yaml .npmrc ./ # Install production + dev dependencies (langgraphjs CLI is in dependencies) RUN pnpm install --frozen-lockfile # ---- Production image ---- FROM node:20-slim RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # LangGraph dev prerequisites RUN touch .env && mkdir -p .langgraph_api # Run as non-root RUN addgroup --system --gid 1001 nodejs && \ adduser --system --uid 1001 langgraph && \ chown -R langgraph:nodejs /app USER langgraph EXPOSE 2024 ENV PORT=2024 CMD ["./node_modules/.bin/tsx", "src/agent/server.ts"]