fix: 修复 pnpm install 报 ERR_PNPM_IGNORED_BUILDS 导致 Docker 构建失败
- pnpm 11 在 CI 下将未批准的依赖构建脚本升级为硬错误(msw/sharp/unrs-resolver) - pnpm-workspace.yaml 用 allowBuilds 显式放行三个包(sharp 需下载原生二进制供 Next 图片优化使用),移除无效的 ignoredBuiltDependencies 与占位模板 - package.json 移除 pnpm 11 已不再读取的 pnpm.onlyBuiltDependencies 字段 - Dockerfile apk 镜像源改回 sed 替换方案(echo 方式引用的 ALPINE_VERSION 在容器内未定义,runner 阶段 apk add 会失败);保留 pnpm 国内源参数
This commit is contained in:
+5
-14
@@ -1,20 +1,18 @@
|
||||
# Dockerfile for Recipe Translation Tool
|
||||
# Stage 1: Builder
|
||||
FROM node:22-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# 国内镜像加速
|
||||
# 国内 apk 镜像加速(sed 替换官方源域名,alpine 版本无关)
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
|
||||
# 安装 pnpm(不使用 corepack)
|
||||
RUN npm install -g pnpm
|
||||
RUN npm install -g pnpm --registry=https://registry.npmmirror.com
|
||||
RUN pnpm config set registry https://registry.npmmirror.com --global
|
||||
|
||||
COPY package.json pnpm-lock.yaml ./
|
||||
|
||||
# 设置国内镜像源
|
||||
RUN npm config set registry https://registry.npmmirror.com && \
|
||||
pnpm config set registry https://registry.npmmirror.com
|
||||
# 构建脚本批准声明在 pnpm-workspace.yaml 的 allowBuilds(sharp/msw/unrs-resolver)
|
||||
|
||||
# 安装依赖
|
||||
RUN pnpm install --frozen-lockfile
|
||||
@@ -26,12 +24,10 @@ RUN pnpm build
|
||||
|
||||
# Stage 2: Runner
|
||||
FROM node:22-alpine AS runner
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
# 国内镜像
|
||||
# 国内 apk 镜像
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||
|
||||
# 创建用户
|
||||
@@ -55,13 +51,8 @@ RUN chown -R nextjs:nodejs /app
|
||||
# 安装 git(版本检查、拉取更新)和 docker CLI(构建/重启容器)
|
||||
USER root
|
||||
RUN apk add --no-cache git docker-cli docker-compose
|
||||
# 以 root 运行以确保有权限访问挂载的 Docker socket /var/run/docker.sock
|
||||
# 若需以非 root 运行,需在宿主机上执行:
|
||||
# sudo chmod 666 /var/run/docker.sock
|
||||
# 或在容器入口脚本中动态匹配 socket 的 group GID
|
||||
|
||||
EXPOSE 3000
|
||||
ENV PORT=3000
|
||||
ENV HOSTNAME="0.0.0.0"
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
@@ -2,6 +2,3 @@ allowBuilds:
|
||||
msw: true
|
||||
sharp: true
|
||||
unrs-resolver: true
|
||||
ignoredBuiltDependencies:
|
||||
- sharp
|
||||
- unrs-resolver
|
||||
|
||||
Reference in New Issue
Block a user