mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
- 引入多阶段构建,分离构建与运行时环境 - 使用node:20-alpine作为构建基础镜像,减小体积 - 添加pnpm包管理器并优化依赖安装流程 - 利用缓存机制提升构建效率 - 新增nginx.conf配置文件解决Vue Router历史模式404问题 - 设置静态资源缓存策略提升性能 - 更改默认启动命令为Nginx服务方式运行应用 - 移除开发服务器相关指令,适配生产部署需求
33 lines
729 B
Docker
33 lines
729 B
Docker
# ========= 阶段1:构建 =========
|
||
FROM node:20-alpine AS builder
|
||
|
||
# 使用国内镜像加速(可选)
|
||
RUN npm config set registry https://registry.npmmirror.com
|
||
|
||
WORKDIR /app
|
||
|
||
# 先复制依赖文件,利用缓存
|
||
COPY package.json pnpm-lock.yaml* ./
|
||
|
||
# 安装 pnpm 并安装依赖
|
||
RUN corepack enable && corepack prepare pnpm@latest --activate \
|
||
&& pnpm install --frozen-lockfile
|
||
|
||
# 复制源码
|
||
COPY . .
|
||
|
||
# 生产构建
|
||
RUN pnpm run build
|
||
|
||
# ========= 阶段2:运行时 =========
|
||
FROM nginx:alpine
|
||
|
||
# 复制构建产物
|
||
COPY --from=builder /app/dist /usr/share/nginx/html
|
||
|
||
# 解决 Vue Router history 模式 404 问题
|
||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||
|
||
EXPOSE 80
|
||
|
||
CMD ["nginx", "-g", "daemon off;"] |