暂无描述

Dockerfile 883B

123456789101112131415161718192021222324252627282930313233343536
  1. FROM node:20-slim AS builder
  2. # --max-old-space-size
  3. ENV PNPM_HOME="/pnpm"
  4. ENV PATH="$PNPM_HOME:$PATH"
  5. ENV NODE_OPTIONS=--max-old-space-size=8192
  6. ENV TZ=Asia/Shanghai
  7. RUN corepack enable
  8. WORKDIR /app
  9. # 创建docs目录(关键)
  10. RUN mkdir -p /app/docs
  11. # copy package.json and pnpm-lock.yaml to workspace
  12. COPY . /app
  13. RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
  14. RUN pnpm run build --filter=\!./docs
  15. RUN echo "Builder Success 🎉"
  16. # 关键调整4:指定nginx为amd64架构(适配Ubuntu)
  17. FROM --platform=linux/amd64 nginx:stable-alpine AS production
  18. RUN echo "types { application/javascript js mjs; }" > /etc/nginx/conf.d/mjs.conf
  19. COPY --from=builder /app/apps/web-ele/dist /usr/share/nginx/html
  20. COPY --from=builder /app/scripts/deploy/nginx.conf /etc/nginx/nginx.conf
  21. EXPOSE 8080
  22. # start nginx
  23. CMD ["nginx", "-g", "daemon off;"]