Files
django-vue3-admin-gd/web/Dockerfile
2025-07-13 21:42:25 +08:00

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;"]