-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Expand file tree
/
Copy pathDockerfile.frontend
More file actions
47 lines (33 loc) · 1.46 KB
/
Dockerfile.frontend
File metadata and controls
47 lines (33 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Frontend Dockerfile for Vue 3 + Vite app (TradingAgents-CN v1.0.0-preview)
# 前后端分离架构 - 前端服务
# 构建阶段:使用Node.js 22.x(与项目开发环境一致)
FROM node:22-alpine AS build
ENV NODE_ENV=production
WORKDIR /app/frontend
# 启用Corepack并使用Yarn 1.22.22(项目使用的包管理器)
RUN corepack enable && corepack prepare yarn@1.22.22 --activate
# 复制package.json、yarn.lock和.yarnrc(配置国内镜像源)
COPY frontend/package.json frontend/yarn.lock frontend/.yarnrc ./
# 安装依赖(使用yarn.lock确保版本一致)
# 增加网络超时时间到5分钟,适应跨平台构建的网络延迟
RUN yarn install --frozen-lockfile --production=false --network-timeout 300000
# 复制前端源代码
COPY frontend/. ./
# 复制根目录的静态资源与文档到构建环境
# - assets: 提供 /assets/* 静态资源(前端使用绝对路径)
# - docs: 提供 Article.vue 中通过 ?raw 引用的 Markdown 文档
COPY assets /app/frontend/public/assets
COPY docs /app/docs
# 构建生产版本(跳过类型检查以加快构建速度)
RUN yarn vite build
# 运行阶段:使用Nginx提供静态文件服务
FROM nginx:alpine AS runtime
WORKDIR /usr/share/nginx/html
# 从构建阶段复制构建产物
COPY --from=build /app/frontend/dist .
# 复制Nginx配置(支持SPA路由)
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
# 暴露端口80
EXPOSE 80
# 启动Nginx
CMD ["nginx", "-g", "daemon off;"]