docker 方式大家都一次性能跑起来吗
Author: xiaohanqingCreated May 9, 2026Updated Jun 5, 2026
交给 hermes,搞了几个小时一看发现还在那儿跑。。。是 hermes 不行,还是这个有问题,大家也遇到下面问题了吗
总结一下遇到的问题,按顺序:
1. 基础镜像tag漂移
Dockerfile写的python:3.11-slim,以前默认是bookworm,现在默认升级到trixie了。但Dockerfile里apt源写死了bookworm的地址,两者混用导致libssl3版本冲突。修复:锁定python:3.11-slim-bookworm。
2. TS编译错误
项目源码FileList.tsx里导入了useEffect但没使用,TS严格模式编译不过。这是项目本身的bug,不是我改出来的。
3. pnpm 10的ERR_PNPM_IGNORED_BUILDS
这个卡最久。容器启动时pnpm preview会自动检查依赖状态,发现Node版本变化就触发pnpm install,而pnpm 10新增了build script安全审批机制,esbuild的postinstall脚本没被批准就直接报错exit 1。
我试了这些方案(都没成功):
- .npmrc里写onlyBuiltDependencies列表 → 被pnpm内部的depsStatusCheck覆盖/忽略
- package.json里加pnpm.onlyBuiltDependencies → 没lockfile,pnpm不认
- start_genie.sh里pnpm config set → 环境变量没生效
- 容器运行时传npm镜像环境变量 → pnpm没读到
- CI=true → 只跳过确认,不解决build script审批
- 用代理让容器内直连npmjs → 代理配置没传进pnpm子进程
根本原因:node_modules是构建阶段(node:20-alpine)装的,运行阶段换成了bookworm的node 18,pnpm检测到版本变化自动重装,但没有lockfile,审批机制无法正常工作。Source: jd-opensource/joyagent-jdgenie