繁体   English   中英

詹金斯:npm EACCES:权限被拒绝

[英]Jenkins: npm EACCES: permission denied

我有以下一个简单的sudo npm install ,它在 EACCESS 错误上一直失败:

在此处输入图片说明

我已经在服务器上尝试了以下内容:

sudo chown -R jenkins /var/lib/jenkins/workspace/
sudo setfacl -R -m user:jenkins:rwx /var/lib/jenkins/workspace

但不幸的是,似乎没有任何效果。

很想听听一些可能导致问题的建议。

谢谢

实际上,帮助我在 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-cacheHOME=. 环境变量,所以 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM