blob: 84e2c1dfe67cc1e0d2277e7b7ae99dc1f307101f [file] [log] [blame]
yyyang3bd72f02025-06-03 16:35:11 +08001# 构建阶段
2FROM node:18-alpine as build
3
4# 设置工作目录
5WORKDIR /app
6
7# 设置 npm 镜像源(使用淘宝镜像加速 npm 包下载)
8RUN npm config set registry https://registry.npmmirror.com
9
10# 复制 package.json 和 package-lock.json
11COPY package*.json ./
12
13# 安装依赖
14RUN npm install
15
16# 复制源代码
17COPY . .
18
19# 清理之前的构建产物
20RUN rm -rf dist
21
22# 构建应用
23RUN npm run build
24
25# 验证构建产物
26RUN ls -la dist && \
27 ls -la dist/assets
28
29# 生产阶段
yyyang33396462025-06-03 17:36:35 +080030FROM nginx:stable
yyyang3bd72f02025-06-03 16:35:11 +080031
32# 设置时区
33ENV TZ=Asia/Shanghai
yyyang33396462025-06-03 17:36:35 +080034RUN apt-get update && \
35 apt-get install -y tzdata && \
36 ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && \
37 echo $TZ > /etc/timezone && \
38 apt-get clean && \
39 rm -rf /var/lib/apt/lists/*
yyyang3bd72f02025-06-03 16:35:11 +080040
41# 清理 nginx 目录
42RUN rm -rf /usr/share/nginx/html/*
43
44# 直接复制本地构建的文件
45COPY dist/ /usr/share/nginx/html/
46
47# 验证文件是否正确复制
48RUN ls -la /usr/share/nginx/html && \
49 ls -la /usr/share/nginx/html/assets
50
51# 复制 Nginx 配置文件
52COPY nginx.conf /etc/nginx/conf.d/default.conf
53
54# 暴露端口
55EXPOSE 80
56
57# 启动 Nginx
58CMD ["nginx", "-g", "daemon off;"]