34 lines
743 B
Docker
34 lines
743 B
Docker
# ────────────────────
|
|
# 第一步:构建阶段
|
|
# ────────────────────
|
|
FROM node:20 AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json yarn.lock ./
|
|
RUN yarn install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN yarn build
|
|
|
|
|
|
# ────────────────────
|
|
# 第二步:运行阶段
|
|
# ────────────────────
|
|
FROM node:20-slim AS runtime
|
|
|
|
WORKDIR /app
|
|
|
|
# 拷贝构建产物
|
|
COPY --from=builder /app/.output .output
|
|
|
|
# 安装生产依赖(如有)
|
|
COPY package*.json yarn.lock ./
|
|
RUN yarn install --production --frozen-lockfile
|
|
|
|
# 暴露端口
|
|
EXPOSE 8091
|
|
|
|
# 启动 Nuxt
|
|
CMD ["node", ".output/server/index.mjs"]
|