Node.js 错误:EACCES:权限被拒绝,mkdir'/.npm'
我试图使用一个Jenkins文件运行本地Jenkins管道,该文件用于使用node:6-alpine image default的nodejs应用程序,使用一个build.sh脚本,该脚本使用call npm install,然后我得到以下权限错误 npm错误!错误:EACCES:权限被拒绝,mkdir'/.npm' npm错误!错误的本地 npm错误!{错误:EACCES:权限被拒绝,mkdir'/.npm' npm ERR!出现本机错误 npm ERR!errno:-13, npm错误!代码:“EACCES”, npm ERR!系统调用:“mkdir”, npm ERR!路径:'/.npm', npm ERR!家长:“我的应用程序”} npm错误! npm错误!请以root/管理员身份再次尝试运行此命令 Docker版本18.09.6,内部版本481bc77 詹金斯在本地运行 我尝试了sudo npm安装,但出现了相同的错误。我还尝试将docker映像argv修改为-u root:sudo-p3000:3000,这是相同的错误Node.js 错误:EACCES:权限被拒绝,mkdir'/.npm',node.js,docker,jenkins-pipeline,Node.js,Docker,Jenkins Pipeline,我试图使用一个Jenkins文件运行本地Jenkins管道,该文件用于使用node:6-alpine image default的nodejs应用程序,使用一个build.sh脚本,该脚本使用call npm install,然后我得到以下权限错误 npm错误!错误:EACCES:权限被拒绝,mkdir'/.npm' npm错误!错误的本地 npm错误!{错误:EACCES:权限被拒绝,mkdir'/.npm' npm ERR!出现本机错误 npm ERR!errno:-13, npm错误!代码
Jenkins file image:
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000'
}
environment {
HOME = '.'
}
}
build.sh脚本
sudo npm安装-不安全perm=true-允许root
错误消息:npm错误!错误:EACCES:权限被拒绝,mkdir'/.npm'
预期结果:创建docker容器,暴露端口3000,并在localhost:3000上运行nodejs应用程序
实际结果:容器内的权限错误。在此处的类似线程中找到答案: 在我的案例中,使用以下方法解决了此问题:
pipeline {
agent {
image 'node:13-alpine'
}
environment {
npm_config_cache = 'npm-cache'
}
stages {
stage('Build') {
steps {
sh 'npm install'
...
}
}
}
}