后端
2026-06-1813 min
Docker 化一个全栈 Monorepo 的正确姿势
多服务编排、构建优化与本地开发体验的平衡……
多阶段构建
pnpm monorepo 的 Docker 镜像一定要用多阶段构建,否则镜像里会塞满 devDependencies:
dockerfile
FROM node:20-alpine AS deps
WORKDIR /app
COPY pnpm-lock.yaml package.json ./
RUN corepack enable && pnpm install --frozen-lockfile
FROM node:20-alpine AS build
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN pnpm build本地开发
本地用 docker compose 起依赖服务(Postgres、Redis),应用本身跑在宿主机上以便热更新。两者用 .env 连接。
DockerMonorepoDevOps