【问题标题】:Error: EACCES: permission denied, mkdir '/.npm'错误:EACCES:权限被拒绝,mkdir '/.npm'
【发布时间】: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


    【解决方案1】:

    在这里的类似帖子中找到了答案:npm install fails in jenkins pipeline in docker

    在我的情况下,使用以下方法解决了它:

    pipeline {
        agent {
            image 'node:13-alpine'
        }
        environment {
            npm_config_cache = 'npm-cache'
        }
        stages {
            stage('Build') {
                steps {
                    sh 'npm install'
                    ...
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 2021-10-22
      • 2016-05-14
      • 2022-07-12
      相关资源
      最近更新 更多