【发布时间】:2018-05-25 04:46:18
【问题描述】:
我很抱歉来这里问这个问题,但我已经阅读了所有互联网试图找到解决方案,但我仍然遇到这个问题......
我已经成功安装(当我还有希望的时候开始)jenkins 可以在我们的持续集成流程中使用它。
我尝试从一个像这样的简单示例开始:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
}
}
但是每次启动都会出现这个错误:
sh: /var/lib/jenkins/workspace/Test@tmp/durable-f70a79f3/script.sh: Permission denied
问题是用户 jenkins(服务和主节点以 Jenkins 身份运行)拥有此存储库的所有权限。我也尝试授予组和其他人读取和执行的权限,但这并没有改变任何东西。
[centos@jenkins workspace]$ ll
total 8
drwxr-xr-x 2 jenkins jenkins 4096 Dec 8 18:35 Test
drwxr-xr-x 2 jenkins jenkins 4096 Dec 11 16:40 Test@tmp
我们正在使用这些参数启动 jenkins:
-Djava.awt.headless=true -Djenkins.install.runSetupWizard=false -Djava.io.tmpdir=/var/lib/jenkins/tmp
在 /jenkins 网址上。除此之外,我看不出问题的原因......
edit : 使用 noexec 挂载的卷
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,net_cls)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
/dev/mapper/rootvg-var_lv on /var type ext4 (rw,nodev,noexec,relatime,nobarrier,data=ordered)
非常感谢您的帮助。
【问题讨论】:
-
Test@tmp中有什么?尝试仅将权限更改为您的script.sh。比如:chmod 755 ${WORKSPACE}/Test@tmp/**/*.sh -
代理能否在卷上有
noexec(请参阅superuser.com/questions/99635/…)? -
@Edwin :我没有任何脚本。我认为是 jenkins 在持久存储库中创建了一个 .sh 并尝试执行它。
-
你看过你的
pom.xml,也许你当时正在用maven做一些事情 -
@mkobit :我刚刚看到 /var 没有执行安装...我没想到 /var 中的所有文件都不允许执行。起初我以为它只是在存储库中,但它似乎是一个很好的线索,当我找到改变它的解决方案时,我会不断更新。谢谢
标签: jenkins permissions jenkins-pipeline file-permissions user-permissions