This commit is contained in:
parent
102e1feebb
commit
3a369ed46e
|
|
@ -1,24 +1,33 @@
|
|||
# 第一步:编译阶段
|
||||
# ────────────────────
|
||||
# 第一步:构建阶段
|
||||
# ────────────────────
|
||||
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
|
||||
# ────────────────────
|
||||
# 第二步:运行阶段
|
||||
# ────────────────────
|
||||
FROM node:20-slim AS runtime
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 拷贝构建产物
|
||||
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"]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Reference in New Issue