This commit is contained in:
hailin 2025-07-28 16:55:42 +08:00
parent 102e1feebb
commit 3a369ed46e
2 changed files with 44 additions and 11 deletions

View File

@ -1,24 +1,33 @@
# 第一步:编译阶段 # ────────────────────
# 第一步:构建阶段
# ────────────────────
FROM node:20 AS builder FROM node:20 AS builder
# 设置工作目录
WORKDIR /app WORKDIR /app
# 拷贝依赖文件并安装
COPY package*.json yarn.lock ./ COPY package*.json yarn.lock ./
RUN yarn install --frozen-lockfile RUN yarn install --frozen-lockfile
# 拷贝源码
COPY . . COPY . .
# 打包(构建 Nuxt 项目)
RUN yarn build RUN yarn build
# 第二步:导出产物阶段(可选用于提取)
FROM alpine:3.18 AS export
WORKDIR /export # ────────────────────
# 第二步:运行阶段
# ────────────────────
FROM node:20-slim AS runtime
WORKDIR /app
# 拷贝构建产物
COPY --from=builder /app/.output .output COPY --from=builder /app/.output .output
# 你也可以选择只拷贝 .output/public 目录 # 安装生产依赖(如有)
# COPY --from=builder /app/.output/public public COPY package*.json yarn.lock ./
RUN yarn install --production --frozen-lockfile
# 暴露端口
EXPOSE 8091
# 启动 Nuxt
CMD ["node", ".output/server/index.mjs"]

View File

@ -0,0 +1,24 @@
# 第一步:编译阶段
FROM node:20 AS builder
# 设置工作目录
WORKDIR /app
# 拷贝依赖文件并安装
COPY package*.json yarn.lock ./
RUN yarn install --frozen-lockfile
# 拷贝源码
COPY . .
# 打包(构建 Nuxt 项目)
RUN yarn build
# 第二步:导出产物阶段(可选用于提取)
FROM alpine:3.18 AS export
WORKDIR /export
COPY --from=builder /app/.output .output
# 你也可以选择只拷贝 .output/public 目录
COPY --from=builder /app/.output/public public