65 lines
1.2 KiB
Docker
65 lines
1.2 KiB
Docker
# syntax=docker/dockerfile:1
|
||
|
||
####################
|
||
# 构建阶段
|
||
####################
|
||
FROM node:22.17.0 AS build
|
||
|
||
WORKDIR /app
|
||
|
||
# 先拷贝依赖文件
|
||
COPY package.json ./
|
||
|
||
# 启用 corepack + 设置 registry
|
||
RUN corepack enable \
|
||
&& corepack prepare pnpm@latest --activate \
|
||
&& pnpm config set registry https://registry.npmjs.org/ \
|
||
&& pnpm install
|
||
|
||
# 再拷贝源码
|
||
COPY . .
|
||
|
||
# 编译
|
||
RUN pnpm run build:antd
|
||
|
||
####################
|
||
# 生产阶段
|
||
####################
|
||
FROM nginx:alpine AS prod
|
||
|
||
# 拷贝编译后的静态文件到 nginx
|
||
COPY --from=build /app/dist /usr/share/nginx/html
|
||
|
||
# 拷贝 nginx 配置
|
||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||
|
||
|
||
####################
|
||
# 开发阶段
|
||
####################
|
||
FROM node:22.17.0 AS dev
|
||
|
||
WORKDIR /app
|
||
|
||
# 拷贝项目
|
||
COPY . .
|
||
|
||
# 如果有私有 registry
|
||
COPY .npmrc .npmrc
|
||
|
||
# 安装 pnpm(官方推荐 corepack,更好)
|
||
RUN corepack enable \
|
||
&& corepack prepare pnpm@latest --activate
|
||
|
||
# 安装依赖(一定要在 monorepo 根目录,保证 workspace 有效)
|
||
RUN pnpm i
|
||
|
||
# 设置前端工作目录(根据实际情况修改)
|
||
WORKDIR /app/apps/web-antd
|
||
|
||
# 暴露前端 dev server 端口
|
||
EXPOSE 5678
|
||
|
||
# 默认启动 dev server
|
||
CMD ["pnpm", "run", "dev:antd"]
|