# ---- 构建阶段:完整镜像自带编译工具链(better-sqlite3 原生模块)---- FROM node:22 AS build WORKDIR /app RUN corepack enable COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./ COPY shared/package.json shared/ COPY server/package.json server/ COPY web/package.json web/ RUN CI=true pnpm install --frozen-lockfile COPY shared/ shared/ COPY server/ server/ COPY web/ web/ RUN pnpm --filter @proxy-station/web build # ---- 运行阶段 ---- FROM node:22-slim WORKDIR /app RUN corepack enable COPY --from=build /app ./ ENV NODE_ENV=production ENV PORT=3000 ENV DATA_DIR=/data VOLUME /data EXPOSE 3000 CMD ["pnpm", "--filter", "@proxy-station/server", "start"]