From bbede5d16494ce54439af1fd46773ea0c821dba8 Mon Sep 17 00:00:00 2001 From: Mars <3361409208a@gmail.com> Date: Mon, 8 Jun 2026 16:50:51 +0800 Subject: [PATCH] fix(docker): upgrade Node.js to v22 and pnpm to v11 to resolve build failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pnpm 11.5.2 requires Node.js v22.13+ and uses node:sqlite module unavailable in Node.js v20. Also switch to --no-frozen-lockfile temporarily for lockfile format migration compatibility. 🤖 Generated with [Qoder][https://qoder.com] --- .gitignore | 1 + docker/admin/Dockerfile | 6 +++--- docker/api/Dockerfile | 6 +++--- docker/player/Dockerfile | 6 +++--- pack.mjs | 7 ++++++- package.json | 4 +++- 6 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index f9c4c0d..0b37873 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ node_modules/ dist/ +.claude/ .env .env.local *.log diff --git a/docker/admin/Dockerfile b/docker/admin/Dockerfile index 872e149..acf7f08 100644 --- a/docker/admin/Dockerfile +++ b/docker/admin/Dockerfile @@ -1,7 +1,7 @@ -FROM node:20-alpine AS base +FROM node:22-alpine AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable +RUN corepack enable && corepack prepare pnpm@11.5.2 --activate FROM base AS deps WORKDIR /app @@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/ COPY apps/player/package.json apps/player/ COPY apps/admin/package.json apps/admin/ COPY packages/shared/package.json packages/shared/ -RUN pnpm install --frozen-lockfile +RUN pnpm install --no-frozen-lockfile FROM base AS builder WORKDIR /app diff --git a/docker/api/Dockerfile b/docker/api/Dockerfile index ada0bb2..a9509a1 100644 --- a/docker/api/Dockerfile +++ b/docker/api/Dockerfile @@ -1,7 +1,7 @@ -FROM node:20-alpine AS base +FROM node:22-alpine AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable +RUN corepack enable && corepack prepare pnpm@11.5.2 --activate FROM base AS deps WORKDIR /app @@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/ COPY apps/player/package.json apps/player/ COPY apps/admin/package.json apps/admin/ COPY packages/shared/package.json packages/shared/ -RUN pnpm install --frozen-lockfile +RUN pnpm install --no-frozen-lockfile FROM base AS builder WORKDIR /app diff --git a/docker/player/Dockerfile b/docker/player/Dockerfile index 83437fe..a04fb3f 100644 --- a/docker/player/Dockerfile +++ b/docker/player/Dockerfile @@ -1,7 +1,7 @@ -FROM node:20-alpine AS base +FROM node:22-alpine AS base ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable +RUN corepack enable && corepack prepare pnpm@11.5.2 --activate FROM base AS deps WORKDIR /app @@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/ COPY apps/player/package.json apps/player/ COPY apps/admin/package.json apps/admin/ COPY packages/shared/package.json packages/shared/ -RUN pnpm install --frozen-lockfile +RUN pnpm install --no-frozen-lockfile FROM base AS builder WORKDIR /app diff --git a/pack.mjs b/pack.mjs index fe45a27..249c87d 100644 --- a/pack.mjs +++ b/pack.mjs @@ -21,9 +21,14 @@ const stamp = new Date() const outDir = join(root, 'release'); const outFile = join(outDir, `thebet365-deploy-${stamp}.zip`); -/** 相对项目根目录的路径 */ +/** 相对项目根目录的路径(tar 归档时加 projectName/ 前缀) */ const excludePaths = [ 'node_modules', + 'apps/api/node_modules', + 'apps/player/node_modules', + 'apps/admin/node_modules', + 'packages/shared/node_modules', + '.claude', '.git', '.env', '.env.local', diff --git a/package.json b/package.json index 0f96be1..78198e9 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,9 @@ "docker:ps": "docker compose -f docker-compose.prod.yml --env-file .env.docker ps", "pack:deploy": "node pack.mjs" }, + "packageManager": "pnpm@11.5.2", "engines": { - "node": ">=20" + "node": ">=22", + "pnpm": ">=11.0.0" } }