73 lines
1.4 KiB
Docker
73 lines
1.4 KiB
Docker
####################
|
|
# 公共基础阶段
|
|
####################
|
|
FROM node:22.17.0 AS base
|
|
|
|
WORKDIR /app
|
|
ENV PNPM_SKIP_PROMPT=true
|
|
ENV CI=true
|
|
|
|
RUN corepack enable && corepack prepare pnpm@10.10.0 --activate
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
|
|
#
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
|
|
# 拷贝项目
|
|
COPY . .
|
|
|
|
#RUN pnpm i
|
|
|
|
# 安装 pnpm
|
|
#RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
#
|
|
## 清理依赖缓存
|
|
#RUN pnpm store prune && rm -rf $(pnpm store path) && \
|
|
# rm -rf node_modules .npmrc package-lock.json pnpm-lock.yaml .pnpm-store .turbo && \
|
|
# find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
|
|
#
|
|
##RUN pnpm run clean
|
|
#
|
|
## 安装依赖
|
|
##RUN pnpm install --force
|
|
|
|
|
|
|
|
####################
|
|
# 开发阶段
|
|
####################
|
|
# 默认启动 dev server
|
|
FROM base AS dev
|
|
|
|
# 暴露端口(根据需要)
|
|
EXPOSE 5678
|
|
#CMD ["tail", "-f", "/dev/null"]
|
|
|
|
# 启动开发服务器
|
|
CMD ["npm", "run", "dev:antd"]
|
|
|
|
# --- 构建阶段 ---
|
|
FROM base AS build
|
|
|
|
# 构建生产版本
|
|
RUN npm run build:antd
|
|
|
|
# --- 生产阶段 ---
|
|
FROM nginx:1.25-alpine AS prod
|
|
|
|
# 删除默认配置
|
|
RUN rm -rf /usr/share/nginx/html/*
|
|
|
|
# 从构建阶段拷贝打包产物到 nginx html 目录
|
|
COPY --from=build /app/apps/web-antd/dist /usr/share/nginx/html
|
|
|
|
# 如果有需要,也可以拷贝自定义 nginx 配置
|
|
COPY nginx.conf /etc/nginx/nginx.conf
|
|
|
|
EXPOSE 5268
|
|
|
|
# 默认启动 nginx
|
|
CMD ["nginx", "-g", "daemon off;"]
|