gpt4 book ai didi

docker - 复制文件时 Jenkins 权限被拒绝

转载 作者:行者123 更新时间:2023-12-02 20:08:36 25 4
gpt4 key购买 nike

我正在使用 jhipster 设置一个 Web 应用程序。我使用 jhipster 子生成器创建了一个 Jenkinsfile,如下所示:

#!/usr/bin/env groovy

node {
stage('checkout') {
checkout scm
}

docker.image('openjdk:8').inside('-u root -e MAVEN_OPTS="-Duser.home=./" --volume=/var/run/docker.sock:/var/run/docker.sock') {
stage('check java') {
sh "java -version"
}

stage('clean') {
sh "chmod +x mvnw"
sh "./mvnw clean"
}

stage('install tools') {
sh "./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-yarn -DnodeVersion=v6.11.3 -DyarnVersion=v1.1.0"
}

stage('yarn install') {
sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn"
}

stage('backend tests') {
try {
sh "./mvnw test"
} catch(err) {
throw err
} finally {
junit '**/target/surefire-reports/TEST-*.xml'
}
}

stage('frontend tests') {
try {
sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn -Dfrontend.yarn.arguments=test"
} catch(err) {
throw err
} finally {
junit '**/target/test-results/karma/TESTS-*.xml'
}
}

stage('packaging') {
sh "./mvnw package -Pprod -DskipTests"
archiveArtifacts artifacts: '**/target/*.war', fingerprint: true
}

}

def dockerImage
stage('build docker') {
sh "cp -R src/main/docker target/"
sh "cp target/*.war target/docker/"
dockerImage = docker.build('test/testrepo', 'target/docker')
}

stage('publish docker') {
docker.withRegistry('http://localhost:5000', 'docker-login') {
dockerImage.push 'latest'
}
}
}

并且 jenkins 在执行时失败(权限被拒绝):

sh "cp -R src/main/docker target/"

这是 Jenkins 上的工作区目录:

-rw-r--r--    1 jenkins jenkins   1565 Jan  2 18:58 .angular-cli.json
-rw-r--r-- 1 jenkins jenkins 475 Jan 2 18:58 .editorconfig
drwxr-xr-x 8 jenkins jenkins 4096 Jan 2 19:28 .git
-rw-r--r-- 1 jenkins jenkins 3374 Jan 2 18:58 .gitattributes
-rw-r--r-- 1 jenkins jenkins 1931 Jan 2 18:58 .gitignore
drwxr-xr-x 4 root root 4096 Jan 2 18:59 .m2
drwxr-xr-x 3 jenkins jenkins 4096 Jan 2 18:58 .mvn
-rw-r--r-- 1 jenkins jenkins 1171 Jan 2 18:58 .yo-rc.json
-rw-r--r-- 1 jenkins jenkins 1832 Jan 2 18:58 Jenkinsfile
-rw-r--r-- 1 jenkins jenkins 7052 Jan 2 18:58 README.md
-rwxr-xr-x 1 jenkins jenkins 7058 Jan 2 19:28 mvnw
-rw-r--r-- 1 jenkins jenkins 5006 Jan 2 18:58 mvnw.cmd
drwxr-xr-x 3 root root 4096 Jan 2 19:29 node
drwxr-xr-x 1120 root root 36864 Jan 2 19:29 node_modules
-rw-r--r-- 1 jenkins jenkins 4434 Jan 2 18:58 package.json
-rw-r--r-- 1 jenkins jenkins 49644 Jan 2 18:58 pom.xml
-rw-r--r-- 1 jenkins jenkins 37 Jan 2 18:58 postcss.config.js
-rw-r--r-- 1 jenkins jenkins 117 Jan 2 18:58 proxy.conf.json
drwxr-xr-x 4 jenkins jenkins 4096 Jan 2 18:58 src
drwxr-xr-x 8 root root 4096 Jan 2 19:30 target
-rw-r--r-- 1 jenkins jenkins 616 Jan 2 18:58 tsconfig-aot.json
-rw-r--r-- 1 jenkins jenkins 737 Jan 2 18:58 tsconfig.json
-rw-r--r-- 1 jenkins jenkins 3068 Jan 2 18:58 tslint.json
drwxr-xr-x 2 jenkins jenkins 4096 Jan 2 18:58 webpack
-rw-r--r-- 1 jenkins jenkins 310798 Jan 2 19:29 yarn.lock

目标目录应该有用户/组(root:root)吗?解决此问题的最佳方法是什么?

最佳答案

jenkins 没有写入目标目录的权限。

1-您可以将 jenkins 添加为目标目录的第二个所有者,例如:chown -R root:jenkins 目标/(在你的 jenkins 文件中:sh 'chown -R root:jenkins target/'

关于docker - 复制文件时 Jenkins 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48066969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com