blob: 84e2c1dfe67cc1e0d2277e7b7ae99dc1f307101f [file] [log] [blame]
# 构建阶段
FROM node:18-alpine as build
# 设置工作目录
WORKDIR /app
# 设置 npm 镜像源(使用淘宝镜像加速 npm 包下载)
RUN npm config set registry https://registry.npmmirror.com
# 复制 package.json 和 package-lock.json
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制源代码
COPY . .
# 清理之前的构建产物
RUN rm -rf dist
# 构建应用
RUN npm run build
# 验证构建产物
RUN ls -la dist && \
ls -la dist/assets
# 生产阶段
FROM nginx:stable
# 设置时区
ENV TZ=Asia/Shanghai
RUN apt-get update && \
apt-get install -y tzdata && \
ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 清理 nginx 目录
RUN rm -rf /usr/share/nginx/html/*
# 直接复制本地构建的文件
COPY dist/ /usr/share/nginx/html/
# 验证文件是否正确复制
RUN ls -la /usr/share/nginx/html && \
ls -la /usr/share/nginx/html/assets
# 复制 Nginx 配置文件
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 暴露端口
EXPOSE 80
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]