我有一个 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 删除的文件夹。