更新了dockerfile

This commit is contained in:
2025-07-29 13:49:33 +08:00
parent f3b7a5aa62
commit ff2f21f145
3 changed files with 46 additions and 48 deletions

View File

@@ -1,37 +1,35 @@
# ------------- 依赖缓存阶段 -------------
FROM node:22.16-alpine AS base
# 国内镜像
RUN npm config set registry https://registry.npmmirror.com
# 置顶安装 pnpm@10.13.1
RUN npm install -g pnpm@10.13.1
WORKDIR /app
# 1⃣ 先把锁文件拷进来,让这一层可以 cache
COPY package.json pnpm-lock.yaml .npmrc ./
# 2⃣ 再执行安装
RUN pnpm install --frozen-lockfile
# 3⃣ 再拷剩余源码
COPY . .
RUN chmod +x patch-ui-pro.zsh && ./patch-ui-pro.zsh
# ------------- 构建阶段 -------------
FROM base AS builder
RUN pnpm build
# ------------- 运行阶段 -------------
FROM node:22.16-alpine AS production
WORKDIR /app
# 拷贝构建产物
COPY --from=builder /app/.output ./.output
EXPOSE 3000
ENV NODE_ENV=production HOST=0.0.0.0 PORT=3000
CMD ["node", ".output/server/index.mjs"]
FROM node:22-alpine AS build
WORKDIR /app
RUN npm config set registry https://registry.npmmirror.com
RUN corepack enable
# Copy package.json and your lockfile, here we add pnpm-lock.yaml for illustration
COPY package.json pnpm-lock.yaml .npmrc ./
# Install dependencies
RUN pnpm i
# Copy the entire project
COPY . ./
# Build the project
RUN chmod +x patch-ui-pro.zsh && ./patch-ui-pro.zsh
RUN pnpm run build
# Build Stage 2
FROM node:22-alpine
WORKDIR /app
# Only `.output` folder is needed from the build stage
COPY --from=build /app/.output/ ./
# Change the port and host
ENV PORT=3000
ENV HOST=0.0.0.0
EXPOSE 3000
CMD ["node", "/app/server/index.mjs"]