[英]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.