mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-13 04:29:50 +08:00
v2.2.0 tag 触发的 ghcr.io 推送挂在 frontend-builder 第 5/7 步 'pnpm install --frozen-lockfile',错误: code: 'ERR_UNKNOWN_BUILTIN_MODULE' Node.js v20.20.2 根因:'corepack prepare pnpm@latest' 拉到 pnpm 11.0.9,pnpm 11+ 要求 Node 22+, 跟我们 node:20-alpine 不兼容。lockfile 本身是 lockfileVersion '9.0' 由 pnpm 9 生成,理应跟 pnpm 9 配。 修:Dockerfile.complete + BillNote_frontend/Dockerfile 都 pin 到 pnpm@9.15.0; 不再用 @latest,避免上游再次升级悄悄破坏 CI。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
26 lines
833 B
Docker
26 lines
833 B
Docker
# === 前端构建阶段 ===
|
||
# Tailwind v4 / Vite 6 需要 Node 20+,alpine + pnpm 会按 lockfile 拉 musl native binary。
|
||
FROM node:20-alpine AS builder
|
||
|
||
# pnpm pin 到 9.x:lockfile 是 v9 生成;pnpm 11 要求 Node 22+ 与 node:20 不兼容
|
||
RUN corepack enable && corepack prepare pnpm@9.15.0 --activate
|
||
|
||
WORKDIR /app
|
||
|
||
# 先复制 lockfile 利用依赖层缓存
|
||
COPY ./BillNote_frontend/package.json ./BillNote_frontend/pnpm-lock.yaml ./
|
||
RUN pnpm install --frozen-lockfile
|
||
|
||
# 再复制源代码并构建
|
||
COPY ./BillNote_frontend/ ./
|
||
RUN pnpm run build
|
||
|
||
# --- 阶段2:使用 nginx 作为静态服务器 ---
|
||
FROM nginx:1.25-alpine
|
||
|
||
RUN rm -rf /etc/nginx/conf.d/default.conf
|
||
COPY ./BillNote_frontend/deploy/default.conf /etc/nginx/conf.d/default.conf
|
||
|
||
# 拷贝构建产物
|
||
COPY --from=builder /app/dist /usr/share/nginx/html
|