Dockerfile 818 B

12345678910111213141516171819202122232425262728293031
  1. # 使用 Node 镜像构建 Vue 项目
  2. FROM node:20-alpine AS build-stage
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 复制项目文件
  6. COPY . .
  7. RUN npm install -g pnpm
  8. RUN pnpm config set registry https://registry.npmmirror.com
  9. RUN cd ${WORKDIR}
  10. RUN pnpm install
  11. # 构建生产环境静态文件
  12. RUN pnpm run build-web
  13. RUN pnpm run build-backend-html
  14. # 使用 Nginx 镜像作为运行时
  15. FROM nginx:alpine
  16. # 复制 Nginx 配置文件
  17. COPY nginx/nginx.conf /etc/nginx/conf.d/default.conf
  18. # 从构建阶段复制静态文件到 Nginx 的默认静态文件目录
  19. COPY --from=build-stage /app/packages/web/dist /usr/share/nginx/html
  20. COPY --from=build-stage /app/packages/frontend/dist /usr/share/nginx/html/admin
  21. # 暴露 80 端口
  22. EXPOSE 80
  23. # 启动 Nginx
  24. CMD ["nginx", "-g", "daemon off;"]