首页 > 解决方案 > 写入 node_modules 目录时的管道权限问题

问题描述

我正在尝试构建从 Git 到我的 docker 主机的管道,并在 git 上运行 jenkinsfile 以推出图像并启动容器。我的管道以权限问题的形式遇到了障碍,错误在日志中明确指出。我在 golive 脚本中添加了错误抱怨的 sudo 行。我想知道当它旋转时是否需要在容器本身内实际运行它?如果有人可以给我一个提示或线索,说明如何完成此任务或将其添加到不同的阶段或步骤,我将不胜感激。谢谢

+ npm install

npm ERR! code EACCES

npm ERR! syscall mkdir

npm ERR! path /.npm

npm ERR! errno EACCES

npm ERR! 

npm ERR! Your cache folder contains root-owned files, due to a bug in

npm ERR! previous versions of npm which has since been addressed.

npm ERR! 

npm ERR! To permanently fix this problem, please run:

npm ERR!   sudo chown -R 113:119 "/.npm"

script returned exit code 1

标签: gitdockerjenkins

解决方案


我不是 Jenkins 奇才,但似乎在容器中运行脚本的用户不是 root 并且在 / 处有一个工作目录,那么它无法创建 /.npm

我通过将用户添加到 docker arg 来解决,如下所示:

agent {
    docker {
        image 'node:15-alpine'
        args '-u root:root'
        reuseNode true
    }
}

推荐阅读