我所在的开发团队正在为我们正在开发的项目设置环境以进行更新。我想直接说明问题。
在我们的 DockerFile
中,我们使用 RUN npm install -g yarn
安装了 yarn。
但是,在执行一个清空缓存文件的 .sh
文件时,我们遇到了以下错误:
yarn error “EACCESS: permission denied, scandir '/root/.config/yarn/link'”
我已经寻找可能的解决方案,我们只发现了一个权宜之计,即给予该目录完全权限:
RUN chmode -R 777 '/root/
我们知道这是不推荐的做法。
有没有人知道更好的答案?我看到过许多关于yarn和docker的问题。
yarn版本为1.9.4
编辑1:
问题在于yarn使用执行此操作的用户编写或读取这些文件,因此解决方案是授予所有用户权限。也许可以以更严格的方式实现?
编辑:
经过多次失败尝试,我们决定只需使用chmod -R 777 ~/.config && chmod -R 777 ~/.cache。这些文件在运行yarn install之前并未创建,由于我们是在每个用户进入系统时触发yarn install,所以变通方法就是为每个用户授予777权限以便让他们写入这些文件。
总之,如果有更好的方案,我会在这里发布答案。
顺便说一下,该系统已被弃用。