在docker映像中安装yarn时出现权限问题

时间:2018-08-06 13:14:43

标签: docker permissions yarnpkg

我的开发团队目前正在为我们正在开发的项目建立更新环境。我直接说到重点。

在我们的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。

纱线版本​​为1.9.4

编辑1: 问题在于,yarn与执行此操作的用户一起写入或读取这些文件,因此解决方案是向所有用户授予权限。也许以一种更具约束力的方式?

4 个答案:

答案 0 :(得分:0)

dockerfile

中尝试一下

USER root

RUN npm install -g yarn

USER [user name]

RUN chown -R [user name] ~/.config && chown -R [user name] ~/.cache

https://docs.npmjs.com/getting-started/fixing-npm-permissions

答案 1 :(得分:0)

尝试

sudo npm install yarn && yarn install

答案 2 :(得分:0)

在经历了很多失败之后,我们决定只使用chmode -R 777 ~/.config && chmode -R 777 ~/.cache 直到我们运行纱线安装时才创建这些文件,由于我们开发系统的方式,每次用户输入系统时都会触发这些文件。因此,解决方法是仅向每个用户授予777权限,以使他们能够写入这些文件。

无论如何,如果有什么更好的办法,我将在此处发布答案。

答案 3 :(得分:-1)

我们最终设置了777权限,但该系统已弃用。