diff --git a/Dockerfile b/Dockerfile index 75206565..2bb06def 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,42 @@ # 阶段1: 构建阶段 -FROM node:22.14.0-slim AS builder +FROM node:24.7.0-slim AS builder WORKDIR /app -# 全局安装 pnpm -RUN npm install -g pnpm +RUN npm config set registry https://registry.npmmirror.com \ + && npm install -g pnpm \ + && pnpm config set registry https://registry.npmmirror.com # 复制依赖文件 COPY package.json pnpm-lock.yaml ./ -RUN pnpm install --registry https://registry.npmmirror.com -# 复制源码并构建 +# 【合并2】强制安装依赖 +RUN pnpm install --force \ + && pnpm add -D @unocss/eslint-plugin + COPY . . + +# 执行生产构建(和你本地的build:prod命令一致) RUN pnpm run build:prod # 阶段2: 生产运行阶段 -FROM node:22.14.0-slim +FROM node:24.7.0-slim WORKDIR /app -# 全局安装 pnpm(确保运行时可用) -RUN npm install -g pnpm --registry https://registry.npmmirror.com +# 【合并3】设置npm镜像源 + 全局安装pnpm + 设置pnpm镜像源 +RUN npm config set registry https://registry.npmmirror.com \ + && npm install -g pnpm \ + && pnpm config set registry https://registry.npmmirror.com -# 从构建阶段复制所有文件(包括 node_modules 和构建产物) COPY --from=builder /app . # 设置环境变量 ENV PORT 8088 ENV NODE_ENV production +# 暴露端口 EXPOSE 8088 -# 使用 pnpm 启动 +# 启动应用 CMD ["pnpm", "start"] \ No newline at end of file