java - 管道脚本尝试在 @2 工作区中创建文件
问题描述
对于以下常规代码:
node('worker_node'){
ws("${WORKSPACE}"){
createPropertiesFile()
}
}
def createPropertiesFile(){
try{
sh 'whoami'
def newFile = new File("sonar-project.properties")
newFile.createNewFile()
}catch(Throwable e){
echo "${e}"
}
}
创建了两个工作空间:
/app/jenkins/workspace/Test/groovy_closures on worker_node
/app/jenkins/workspace/Test/groovy_closures@2 on worker_node // not sure about the purpose of this work space
但给出以下输出:
Running on worker_node in /app/jenkins/workspace/Test/groovy_closures
[Pipeline] {
[Pipeline] ws
Running in /app/jenkins/workspace/Test/groovy_closures@2
[Pipeline] {
[Pipeline] sh
+ whoami
jenkins
[Pipeline] echo
java.io.IOException: Permission denied
[Pipeline] }
[Pipeline] // ws
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
$ whoami
给出jenkins
运行此脚本的所有者,如下所示:
User_Jenkins_configuration_on_worker_node
ws("${WORKSPACE}"){
sh "touch file" // creates file in /app/jenkins/workspace/Test/groovy_closures@2 folder but not in /app/jenkins/workspace/Test/groovy_closures folder
}
1) 为什么用户jenkins
没有创建文件的权限?如何jenkins
在 Jenkins 中配置用户以获得此权限?
2)如何在/app/jenkins/workspace/Test/groovy_closures
而不是在中创建文件/app/jenkins/workspace/Test/groovy_closures@2
?
解决方案
推荐阅读
- python - Django formset 错误显示在打印中,但不在模板中
- c - 如何将多个变量数据存储在字符串/数组中
- xml - 如何访问 XSL for-each 标签中的“xmlns:”属性?
- linux - 从不同文件夹复制 .png 图像,将原始文件夹名称保留在 png 上
- vue.js - Vue - 从 vue 文件调用 beforeMount 方法
- javascript - Flask 动态用户输入,无需重定向或重新加载
- javascript - 无法读取nodejs中未定义的属性'body'
- laravel - 侦听器返回 false 只会停止将事件传播给其他侦听器吗?或者也停止相关事件?(拉拉维尔)
- javascript - 使用 JavaSCript 在 IE 中更改 ID css
- python - 3 连接模型的查询集