git - 写入 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
解决方案
我不是 Jenkins 奇才,但似乎在容器中运行脚本的用户不是 root 并且在 / 处有一个工作目录,那么它无法创建 /.npm
我通过将用户添加到 docker arg 来解决,如下所示:
agent {
docker {
image 'node:15-alpine'
args '-u root:root'
reuseNode true
}
}
推荐阅读
- android - 关于泛型导致 ClassCastException LinkedTreeMap cannot be cast to Any
- node.js - 净::ERR_CERT_AUTHORITY_INVALID
- git - 通过 nginx 反向代理的 git push 停止工作(致命:远程端意外挂断)
- javascript - JS:如何切换对象的 CSS 子类?
- react-native - 为 textInput 中输入的文本添加背景颜色反应本机
- python-3.x - PySpark 使用另一列中存在的值查询一个列名
- firebase - 如何在firebase firestore中准确合并多个流
- javascript - Uncaught (in promise) TypeError: localStorage.setItem is not a function
- python - 只返回列表的最后一个元素?
- flutter - 颤振错误:'上下文!= null':不正确