This commit is contained in:
parent
102e1feebb
commit
3a369ed46e
|
|
@ -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"]
|
||||||
|
|
|
||||||
|
|
@ -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