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:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
dist/
|
||||||
|
.claude/
|
||||||
.env
|
.env
|
||||||
.env.local
|
.env.local
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FROM node:20-alpine AS base
|
FROM node:22-alpine AS base
|
||||||
ENV PNPM_HOME="/pnpm"
|
ENV PNPM_HOME="/pnpm"
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
RUN corepack enable
|
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
||||||
|
|
||||||
FROM base AS deps
|
FROM base AS deps
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FROM node:20-alpine AS base
|
FROM node:22-alpine AS base
|
||||||
ENV PNPM_HOME="/pnpm"
|
ENV PNPM_HOME="/pnpm"
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
RUN corepack enable
|
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
||||||
|
|
||||||
FROM base AS deps
|
FROM base AS deps
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
FROM node:20-alpine AS base
|
FROM node:22-alpine AS base
|
||||||
ENV PNPM_HOME="/pnpm"
|
ENV PNPM_HOME="/pnpm"
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
RUN corepack enable
|
RUN corepack enable && corepack prepare pnpm@11.5.2 --activate
|
||||||
|
|
||||||
FROM base AS deps
|
FROM base AS deps
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@@ -10,7 +10,7 @@ COPY apps/api/package.json apps/api/
|
|||||||
COPY apps/player/package.json apps/player/
|
COPY apps/player/package.json apps/player/
|
||||||
COPY apps/admin/package.json apps/admin/
|
COPY apps/admin/package.json apps/admin/
|
||||||
COPY packages/shared/package.json packages/shared/
|
COPY packages/shared/package.json packages/shared/
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --no-frozen-lockfile
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|||||||
7
pack.mjs
7
pack.mjs
@@ -21,9 +21,14 @@ const stamp = new Date()
|
|||||||
const outDir = join(root, 'release');
|
const outDir = join(root, 'release');
|
||||||
const outFile = join(outDir, `thebet365-deploy-${stamp}.zip`);
|
const outFile = join(outDir, `thebet365-deploy-${stamp}.zip`);
|
||||||
|
|
||||||
/** 相对项目根目录的路径 */
|
/** 相对项目根目录的路径(tar 归档时加 projectName/ 前缀) */
|
||||||
const excludePaths = [
|
const excludePaths = [
|
||||||
'node_modules',
|
'node_modules',
|
||||||
|
'apps/api/node_modules',
|
||||||
|
'apps/player/node_modules',
|
||||||
|
'apps/admin/node_modules',
|
||||||
|
'packages/shared/node_modules',
|
||||||
|
'.claude',
|
||||||
'.git',
|
'.git',
|
||||||
'.env',
|
'.env',
|
||||||
'.env.local',
|
'.env.local',
|
||||||
|
|||||||
@@ -22,7 +22,9 @@
|
|||||||
"docker:ps": "docker compose -f docker-compose.prod.yml --env-file .env.docker ps",
|
"docker:ps": "docker compose -f docker-compose.prod.yml --env-file .env.docker ps",
|
||||||
"pack:deploy": "node pack.mjs"
|
"pack:deploy": "node pack.mjs"
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@11.5.2",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20"
|
"node": ">=22",
|
||||||
|
"pnpm": ">=11.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user