@@ -9,7 +9,8 @@ RUN npm config set registry https://registry.npmmirror.com && \
99WORKDIR /app
1010
1111FROM base AS deps
12- COPY package.json pnpm-lock.yaml ./
12+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
13+ COPY apps/DocFlow/package.json ./apps/DocFlow/package.json
1314RUN pnpm install --frozen-lockfile --ignore-scripts
1415
1516FROM base AS builder
@@ -20,18 +21,21 @@ ARG GIT_COMMIT=unknown
2021
2122WORKDIR /app
2223COPY --from=deps /app/node_modules ./node_modules
23- COPY . .
24+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
25+ COPY apps/ ./apps/
26+ COPY packages/ ./packages/ 2>/dev/null || true
2427
2528# 构建时环境变量
2629ENV NEXT_TELEMETRY_DISABLED=1
2730ENV NODE_OPTIONS="--max-old-space-size=4096"
2831
2932RUN pnpm build && \
30- rm -rf .next/cache
33+ rm -rf apps/DocFlow/ .next/cache
3134
3235FROM base AS prod-deps
3336WORKDIR /app
34- COPY package.json pnpm-lock.yaml ./
37+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
38+ COPY apps/DocFlow/package.json ./apps/DocFlow/package.json
3539RUN pnpm install --frozen-lockfile --prod --ignore-scripts && \
3640 find node_modules -name "*.d.ts" -delete && \
3741 find node_modules -name "*.map" -delete && \
@@ -69,14 +73,17 @@ RUN apk add --no-cache libc6-compat && \
6973 adduser --system --uid 1001 nextjs
7074
7175COPY --from=prod-deps --chown=nextjs:nodejs /app/node_modules ./node_modules
72- COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
73- COPY --from=builder --chown=nextjs:nodejs /app/public ./public
76+ COPY --from=builder --chown=nextjs:nodejs /app/apps/DocFlow/.next ./apps/DocFlow/.next
77+ COPY --from=builder --chown=nextjs:nodejs /app/apps/DocFlow/public ./apps/DocFlow/public
78+ COPY --from=builder --chown=nextjs:nodejs /app/apps/DocFlow/package.json ./apps/DocFlow/package.json
7479COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json
80+ COPY --from=builder --chown=nextjs:nodejs /app/pnpm-workspace.yaml ./pnpm-workspace.yaml
7581
7682USER nextjs
7783EXPOSE 3000
7884
7985HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
8086 CMD node -e "require('http').get('http://localhost:3000/api/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
8187
82- CMD ["node_modules/.bin/next" , "start" ]
88+ WORKDIR /app/apps/DocFlow
89+ CMD ["../../node_modules/.bin/next" , "start" ]
0 commit comments