docker-jenkins dsl管道
大家好,我正试图与docker和jenkins创建一个管道,在容器内执行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:
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。我取下标签以防混淆。