23 lines
565 B
Docker
23 lines
565 B
Docker
# 构建 Vue 静态文件
|
|
FROM node:22-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
# Corepack 随 Node 一起提供,用它固定使用项目的 pnpm。
|
|
RUN corepack enable
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
COPY shared/package.json ./shared/package.json
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN pnpm test && pnpm build
|
|
|
|
# 运行阶段:仅保留构建产物和 Nginx,不包含源码或 node_modules。
|
|
FROM nginx:1.27-alpine
|
|
|
|
COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
|
|
EXPOSE 80
|