我有以下一个简单的sudo npm install
,它继续在EACCESS错误上失败:
我已在服务器上尝试过以下操作:
sudo chown -R jenkins /var/lib/jenkins/workspace/
sudo setfacl -R -m user:jenkins:rwx /var/lib/jenkins/workspace
但不幸的是,似乎没有任何效果。
很想听听可能导致问题的一些建议。
由于
答案 0 :(得分:2)
实际上,帮助我在Ubuntu Linux中使用具有sudo权限的Jenkins的原因是以下命令:
sudo chown -R jenkins folderName
sudo setfacl -R -m user:jenkins:rwx folderName
还需要浏览到Ubuntu上的Jenkins安装目录,
/var/lib/jenkins/workspace
假设您位于主文件夹中,则必须向下两个级别。
cd ..
cd ..
然后
cd /var/lib/jenkins/workspace
然后
sudo chown -R jenkins folderName
sudo setfacl -R -m user:jenkins:rwx folderName
这解决了我的“以root身份运行詹金斯”问题。
答案 1 :(得分:1)
将.npm-global
更新为适当的所有者。使用Jenkins进行部署时,我遇到了类似的问题。 .npm-global
文件夹的所有者是Jenkins,但该文件夹下的所有子文件夹均以root作为所有者。然后,我使用下面的命令
sudo chown -R ubuntu:ubuntu .npm-global
答案 2 :(得分:0)
看起来您的问题似乎不是重复的,但是人们在安装node-sass时遇到了问题。
解决特定问题的最简单方法是:
sudo npm install --unsafe-perm node-sass
答案 3 :(得分:0)
就我而言,此问题在构建时与docker映像结合出现。
我必须设置npm_config_cache=npm-cache
和HOME=.
环境变量,以便npm使用当前目录进行构建。
Jenkinsfile:
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'
}
}
}
}