shell – Jenkinsfile:在Docker容器中运行sh步骤时权限被拒绝
我无法运行简单的Jenkins文件 – 例如
pipeline { agent { label 'ssh-slave' } stages { stage('Shell Test') { steps { sh 'echo "Hello World"' } } } } 主服务器上Jenkins的日志文件显示容器已成功启动,但构建作业因类似消息而崩溃 sh: 1: /home/jenkins/workspace/pipeline@tmp/durable-34c21b81/script.sh: Permission denied 以下是我们配置/计算出的一些其他内容: >我们正在使用RHEL在VM上运行代理 我们已经尝试过但没有奏效的事情 >将Docker容器中root用户的登录shell更改为/ bin / sh sh '''#!/bin/sh echo "hello world" ''' >在Jenkins全局配置中将shell执行程序设置为/ bin / sh 任何帮助表示赞赏! 解决方法
问题是容器中的/ home / jenkins是用noexec挂载的:
$mount /dev/mapper/rhel-var on /home/jenkins type xfs (rw,nosuid,nodev,noexec,relatime,seclabel,attr2,inode64,noquota) 基本问题是底层主机上的/ var是用noexec挂载的(/ var是所有容器文件所在的位置……): $mount /dev/mapper/rhel-var on /var type xfs (rw,noquota) 所以这个问题的解决方案是将/ var挂载到主机上 sudo mount -o remount,exec /var 这解决了我们的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |