【发布时间】:2019-10-28 10:19:45
【问题描述】:
我试图使用 Jenkinsfile 为 nodejs 应用程序运行本地 Jenkins 管道,使用 node:6-alpine 映像(默认)使用 build.sh 脚本调用 npm install 然后我得到以下权限错误
npm 错误!错误:EACCES:权限被拒绝,mkdir '/.npm' npm 错误!在错误(本机) npm 错误! { 错误:EACCES:权限被拒绝,mkdir '/.npm' npm 错误!在错误(本机) npm 错误!错误号:-13, npm 错误!代码:'EACCES', npm 错误!系统调用:'mkdir', npm 错误!路径:'/.npm', npm 错误!父母:'我的应用'} npm 错误! npm 错误!请尝试以 root/管理员身份再次运行此命令。
Docker 版本 18.09.6,构建 481bc77 Jenkins 在本地运行
我试过 sudo npm install 但同样的错误。我也尝试将 docker image argv 修改为 -u root:sudo -p 3000:3000 同样的错误
Jenkins file image:
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000'
}
environment {
HOME = '.'
}
}
build.sh 脚本 sudo npm install --unsafe-perm=true --allow-root
错误信息:npm ERR!错误:EACCES:权限被拒绝,mkdir '/.npm'
预期结果:创建 docker 容器,暴露 3000 端口并在 localhost:3000 上运行 nodejs 应用程序
实际结果:容器内部权限错误。
【问题讨论】:
标签: node.js docker jenkins-pipeline