当使用NodeJS插件在Jenkins Groovy管道内执行“ npm install”时,我遇到一个令人沮丧的问题,该进程因以下错误而挂起-
npm install --ddd ng-cli
npm info it worked if it ends with ok
npm verb cli [ '/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs893-v2/bin/node',
npm verb cli '/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs893-v2/bin/npm',
npm verb cli 'install',
npm verb cli '--ddd',
npm verb cli 'ng-cli' ]
npm info using npm@5.5.1
npm info using node@v8.9.3
npm verb npm-session e522ad0a36f1c038
npm sill install loadCurrentTree
npm sill install readLocalPackageData
npm http fetch GET 503 https://registry.npmjs.org/ng-cli 70252ms attempt #3
npm sill fetchPackageMetaData error for ng-cli@latest 503 Service Unavailable: ng-cli@latest
npm verb stack Error: 503 Service Unavailable: ng-cli@latest
直接在EC2上执行命令时,该软件包将以Jenkins用户身份安装而不会出现问题。
此外,当命令在Jenkins Docker内部执行时,该软件包将与Jenkins用户一样使用相同的Node安装进行安装。
Docker实例不受CPU或RAM的限制。
设置为在Docker容器中运行的Jenkins v2.138.1,该容器又托管在EC2 v2018.03上。 Jenkins主页已作为EFS卷安装。 JVM在Java v1.8.0_181上运行。 NPM是v5.1.1。
任何指针将不胜感激。
是的,可以直接连接互联网,没有任何代理。如果安装了单个软件包,例如
npm install ng-cli
npm安装没有问题。
答案 0 :(得分:0)
问题由两部分组成-
首先-EFS挂载点目录(/ var / jenkins_home)所需的权限为777,不需要是递归权限。
新的EFS磁盘具有从旧的Jenkins EFS迁移的内容,这也导致了此问题。解决的办法是不通过backup.tar.gz功能将任何内容从旧EFS传输到新EFS。新的Jenkins通过npm install可以正常工作。
Dockerfile从-https://hub.docker.com/r/jenkins/jenkins/
提取