【问题标题】:How to resolve jenkins npm install Permission denied如何解决詹金斯 npm install 权限被拒绝
【发布时间】:2020-10-18 18:55:10
【问题描述】:

这是我的 Jenkinsfile

pipeline {
  agent any
  tools {nodejs "nodejs10"}
  stages {
      stage('Test') {
        steps {
          echo 'Testing...'
        }
      }
      stage ('Build source') {
        steps {
          sh '''
            mkdir -p .npm-global
            mkdir -p _cacache
            export PATH=.npm-global/bin:$PATH

            npm config set prefix '.npm-global'
            npm config set cache '_cacache'
            npm config set jobs 1
            npm config set strict-ssl false
          '''
          dir('e2e/test1'){
            sh "$PWD"
          }
          sh 'npm i'
        }
      }
  }
}

在 npm 安装时失败。 我收到此错误:

Pipeline] dir
Running in /var/jenkins_home/workspace/jenkins_docker2/e2e/test1
[Pipeline] {
[Pipeline] sh
+ /
/var/jenkins_home/workspace/jenkins_docker2/e2e/test1@tmp/durable-e0a8070a/script.sh: 1: /var/jenkins_home/workspace/jenkins_docker2/e2e/test1@tmp/durable-e0a8070a/script.sh: /: Permission denied
[Pipeline] }
[Pipeline] // dir
[Pipeline] }

我是否在我的管道中遗漏了什么?

我有 node10 的 nodejs 插件。 我已经在我的 Windows 10 操作系统上使用 docker 社区版使用 docker 构建了 jenkins,并且使用了这样的卷:

docker run -p 81:8080 -p 50000:50000 --name myjenkins --privileged -v %cd%/jenkins:/var/jenkins_home jenkins/jenkins

【问题讨论】:

    标签: docker jenkins npm


    【解决方案1】:

    好的,当我不使用 dir 并将 package.json 文件放在根目录中时,我发现 npm install 有效。 IT 没有解释为什么我通过将工作目录更改为包含 package.json 的不同文件夹来拒绝权限,但现在我有一个可行的解决方案。

    【讨论】:

    • 我认为不是dir 的问题,而是sh "$PWD",你可以尝试将其更改为sh 'pwd'
    猜你喜欢
    • 2018-04-04
    • 2018-05-25
    • 2012-06-08
    • 2018-11-13
    • 2014-08-25
    • 2020-01-08
    • 2019-09-24
    • 2017-03-26
    • 1970-01-01
    相关资源
    最近更新 更多