38 lines
986 B
Docker
38 lines
986 B
Docker
|
|
FROM node:20-alpine AS builder
|
|||
|
|
|
|||
|
|
# 使用 corepack 管理 pnpm,保持与仓库锁一致
|
|||
|
|
ENV PNPM_HOME=/root/.local/share/pnpm
|
|||
|
|
ENV PATH=$PNPM_HOME:$PATH
|
|||
|
|
RUN corepack enable
|
|||
|
|
|
|||
|
|
WORKDIR /workspace
|
|||
|
|
|
|||
|
|
|
|||
|
|
# docker build -f app/web-gold/Dockerfile -t web-gold-nginx .
|
|||
|
|
# docker run -d --name web-gold -p 8088:8088 web-gold-nginx
|
|||
|
|
|
|||
|
|
# 复制整个仓库(建议在仓库根目录作为构建上下文执行:
|
|||
|
|
# docker build -f app/web-gold/Dockerfile -t web-gold-nginx .
|
|||
|
|
# )
|
|||
|
|
COPY . .
|
|||
|
|
|
|||
|
|
# 安装依赖(工作区模式),严格锁定版本
|
|||
|
|
RUN pnpm -w install --frozen-lockfile
|
|||
|
|
|
|||
|
|
# 构建前端应用(工作区内的 app/web-gold)
|
|||
|
|
WORKDIR /workspace/app/web-gold
|
|||
|
|
RUN pnpm build
|
|||
|
|
|
|||
|
|
FROM nginx:alpine
|
|||
|
|
|
|||
|
|
# 覆盖默认站点配置(支持 Vite SPA 刷新与可选反代)
|
|||
|
|
COPY app/web-gold/nginx.conf /etc/nginx/conf.d/default.conf
|
|||
|
|
|
|||
|
|
# 拷贝构建产物到 Nginx 根目录
|
|||
|
|
COPY --from=builder /workspace/app/web-gold/dist /usr/share/nginx/html
|
|||
|
|
|
|||
|
|
EXPOSE 8088
|
|||
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|||
|
|
|
|||
|
|
|