Docker开发环境构建GitHub仓库时遇EPERM权限错误求助
解决Docker开发环境中Yarn Berry构建的EPERM权限错误
报错信息
➤ YN0001: │ Error: esbuild-linux-arm64@npm:0.14.54: EPERM: operation not permitted, copyfile '/root/.yarn/berry/cache/esbuild-linux-arm64-npm-0.14.54-494e5f1b94-8.zip' -> '/com.docker.devenvironments.code/.yarn/cache/esbuild-linux-arm64-npm-0.14.54-494e5f1b94-8.zip-5d136c97b7bea2c4.tmp'
可行解决方案
1. 对齐容器与本地用户权限
Docker挂载目录/com.docker.devenvironments.code的权限冲突是常见原因,启动容器时指定与本地主机一致的UID/GID:
docker run -v /本地项目路径:/com.docker.devenvironments.code --user $(id -u):$(id -g) 你的镜像名
此操作让容器内用户拥有本地目录的操作权限,避免跨用户权限限制。
2. 重置Yarn缓存与目录权限
缓存目录权限异常可能导致拷贝失败,执行以下步骤重置:
# 删除项目内的缓存目录 rm -rf /com.docker.devenvironments.code/.yarn/cache # 清理全局缓存 yarn cache clean # 重新安装依赖 yarn install
也可以指定Yarn使用容器内临时目录作为缓存,绕挂载目录权限问题:
yarn config set cache-folder /tmp/yarn-cache yarn install
3. 调整Docker Desktop文件共享设置(仅Mac/Windows)
如果使用Docker Desktop,检查以下设置:
- 打开Docker Desktop设置 → 资源 → 文件共享,确认本地项目目录已在共享列表中
- 重启Docker Desktop,确保文件共享权限生效
4. 禁用Yarn硬链接优化
Yarn Berry默认的硬链接模式在Docker挂载卷中可能触发权限问题,在项目根目录的.yarnrc.yml中添加:
enableHardlinks: false
保存后重新执行yarn install,强制Yarn使用普通拷贝模式。
内容的提问来源于stack exchange,提问作者You Know Ball
相关产品推荐
相关产品推荐

