0

我有一个 Jenkins 作为独立服务器运行,即它没有作为 Docker 容器运行。为了使用 Gradle 构建我的应用程序,我使用的是 Docker 映像,如下所示。

stages {
    stage('Compile') {
        steps {
            script {
                docker.image("gradle:6.2.2-jdk8").inside("-v ${HOME}/.gradle:/gradle/.gradle") {
                    sh './gradlew clean vaadinPrepareNode build -Pvaadin.productionMode'
                    sh "mkdir -p ${GRADLE_DEPENDENCY_PATH} && (cd build/dependency; jar -xf ../libs/*.jar)"
                }
            }
        }
    }
 }

我的问题如下:有一个 Gradle 任务试图访问目录/.npm。然而,jenkins启动 Docker 容器 ( uid=1002(jenkins) gid=1002(jenkins)) 的用户似乎没有这样做的权限。因此任务失败。

将管道语句更改docker.image("gradle:6.2.2-jdk8").inside("-u root -v ${HOME}/.gradle:/gradle为构建成功完成但随后我root在工作区中拥有无法被 Jenkins 删除的文件夹。

4

0 回答 0