[英]Jenkins: npm EACCES: permission denied
实际上,帮助我在 Ubuntu Linux 上使用具有 sudo 权限的 Jenkins 是以下命令:
sudo chown -R jenkins folderName
sudo setfacl -R -m user:jenkins:rwx folderName
您还需要在 Ubuntu 中浏览到 Jenkins 安装
/var/lib/jenkins/workspace
假设您在 Home 文件夹中,则必须向下两层。
cd ..
cd ..
那么
cd /var/lib/jenkins/workspace
那么
sudo chown -R jenkins folderName
sudo setfacl -R -m user:jenkins:rwx folderName
这解决了我的“以 root 身份运行 jenkins”的问题。
将.npm-global
更新为正确的所有者。 我在使用 Jenkins 部署时遇到了类似的问题。 .npm-global
文件夹所有者是 Jenkins,但其下的所有子文件夹都以 root 为所有者。 然后我使用以下命令更改了所有者
sudo chown -R ubuntu:ubuntu .npm-global
看起来您的问题不是重复的,但是人们在安装 node-sass 时遇到了问题。
解决特定问题的最简单方法是:
sudo npm install --unsafe-perm node-sass
就我而言,此问题在构建时与 docker 图像结合出现。 我必须设置npm_config_cache=npm-cache
和HOME=.
环境变量,所以 npm 使用当前目录来构建。
詹金斯档案:
docker.withRegistry('https://my_registry/', 'docker_user') {
docker.image('node-agent:node-14').inside {
withEnv([
/* Override the npm cache directory */
/* Reset Home dir */
'npm_config_cache=npm-cache',
'HOME=.',
]) {
stage('NPM Build') {
sh "rm -rf node_modules || true" // removing node_modules if existing.
sh 'npm install'
sh 'npm run build'
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.