docker-jenkins dsl管道

docker-jenkins dsl管道,docker,jenkins-pipeline,Docker,Jenkins Pipeline,大家好,我正试图与docker和jenkins创建一个管道,在容器内执行npm install时,我遇到了以下错误 $ docker run -t -d -u 1001:1001 -w /home/jenkins/jenkins_slave/workspace/SistacLabAPI -v /home/jenkins/jenkins_slave/workspace/SistacLabAPI:/home/jenkins/jenkins_slave/workspace/SistacLabAPI:

大家好,我正试图与docker和jenkins创建一个管道,在容器内执行
npm install
时,我遇到了以下错误

$ docker run -t -d -u 1001:1001 -w 
/home/jenkins/jenkins_slave/workspace/SistacLabAPI -v /home/jenkins/jenkins_slave/workspace/SistacLabAPI:/home/jenkins/jenkins_slave/workspace/SistacLabAPI:rw -v /home/jenkins/jenkins_slave/workspace/SistacLabAPI@tmp:/home/jenkins/jenkins_slave/workspace/SistacLabAPI@tmp:rw jorgebo10/slapi:jenkins-SistacLabAPI-125 cat
[Pipeline] {
[Pipeline] sh
[SistacLabAPI] Running shell script
+ pwd
/home/jenkins/jenkins_slave/workspace/SistacLabAPI
[Pipeline] sh
[SistacLabAPI] Running shell script
+ ls -l
total 280
-rw-rw-r-- 1 1001 1001    316 Jul 26 23:06 Dockerfile
-rw-rw-r-- 1 1001 1001   1331 Jul 26 19:27 Gruntfile.js
-rw-rw-r-- 1 1001 1001  11357 Jul 26 19:27 LICENSE
drwxrwxr-x 4 1001 1001   4096 Jul 26 19:27 app
-rw-rw-r-- 1 1001 1001    926 Jul 26 19:27 app.js
drwxrwxr-x 3 1001 1001   4096 Jul 26 19:27 config
drwxr-xr-x 2 1001 1001   4096 Jul 27 15:29 jorge
-rw-r--r-- 1 1001 1001 240093 Jul 27 15:28 npm-debug.log
-rw-rw-r-- 1 1001 1001   1348 Jul 26 19:27 package.json
drwxrwxr-x 2 1001 1001   4096 Jul 26 19:27 public
[Pipeline] sh
[SistacLabAPI] Running shell script
+ hostname
61162ea48f0b
[Pipeline] sh
[SistacLabAPI] Running shell script
+ node -v
v4.4.7
[Pipeline] sh
[SistacLabAPI] Running shell script
+ npm install
npm ERR! Linux 3.13.0-92-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v4.4.7
npm ERR! npm  v2.15.8
npm ERR! path /.npm
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/.npm'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/.npm']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/.npm',
npm ERR!   parent: 'sistacLabAPI' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/jenkins/jenkins_slave/workspace/SistacLabAPI/npm-debug.log
[Pipeline] }
$ docker stop 61162ea48f0b6044cf3b1b9d763d1b098b21af87b152901c64610df4b0060c22
$ docker rm -f 61162ea48f0b6044cf3b1b9d763d1b098b21af87b152901c64610df4b0060c22
我的jenkins文件包含以下内容

node('docker') {
    git url: 'https://github.com/jorgebo10/SistacLabAPI.git', branch:'development'

    docker.build("jorgebo10/slapi:${env.BUILD_TAG}").inside {
        sh "pwd"
        sh "ls -l"
        sh "hostname"
        sh "node -v"
        sh "npm install"
    }

    input '¿Deploy to production?'

    stage 'Production'
}
对可能发生的事情有什么线索吗?似乎以用户1001的身份运行npm安装并不好

谢谢, 豪尔赫

只需在舞台上添加以下内容:

withEnv(['HOME=.']) {
... 
...
}

这和标签有什么关系?它是jenkins job dsl的一个扩展,我想,我是新来的。如果你认为这个标签不合适,我可以改一下。感谢您的反馈。虽然管道插件也使用DSL,但它是另一种DSL。我取下标签以防混淆。