fix(docker): upgrade Node.js to v22 and pnpm to v11 to resolve build failure

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]
This commit is contained in:
2026-06-08 16:50:51 +08:00
parent e52cac7444
commit bbede5d164
6 changed files with 19 additions and 11 deletions

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
node_modules/
dist/
.claude/
.env
.env.local
*.log

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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',

View File

@@ -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"
}
}