簡體   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