diff --git a/php_pc/Dockerfile b/php_pc/Dockerfile index 089e9a0..7b9f53f 100644 --- a/php_pc/Dockerfile +++ b/php_pc/Dockerfile @@ -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"] diff --git a/php_pc/Dockerfile.build_only b/php_pc/Dockerfile.build_only new file mode 100644 index 0000000..1b8f504 --- /dev/null +++ b/php_pc/Dockerfile.build_only @@ -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