【发布时间】:2022-07-04 22:25:32
【问题描述】:
我正在尝试将 dockefile 代理与(无根)Podman(yum install podman-docker)一起使用,但是应该在容器中运行命令的 sh 步骤挂起。
FROM registry.access.redhat.com/ubi8/python-36:1-164
COPY requirements.txt .
RUN pip install -r requirements.txt
pipeline {
agent {
dockerfile true
}
stages {
stage "stage", {
steps {
sh "echo hello"
}
}
}
}
Jenkins 然后告诉(在“sh”和“进程显然从未启动”之间挂了更长的时间之后)
[Pipeline] { (Generate CryptoStore dist zip)
[Pipeline] sh
process apparently never started in /var/lib/jenkins/workspace/--%<--@tmp/durable-5572a21e
(running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
[Pipeline] }
设置LAUNCH_DIAGNOSTICS,它告诉
sh: /var/lib/jenkins/workspace/--%<--@2@tmp/durable-baac9648/jenkins-log.txt: Permission denied
sh: /var/lib/jenkins/workspace/--%<--@2@tmp/durable-baac9648/jenkins-result.txt.tmp: Permission denied
touch: cannot touch '/var/lib/jenkins/workspace/--%<--@2@tmp/durable-baac9648/jenkins-log.txt': Permission denied
mv: cannot stat '/var/lib/jenkins/workspace/--%<--@2@tmp/durable-baac9648/jenkins-result.txt.tmp': No such file or directory
touch: cannot touch '/var/lib/jenkins/workspace/--%<--@2@tmp/durable-baac9648/jenkins-log.txt': Permission denied
[...]
我看到 Jenkins 使用 -u 选项启动容器,该选项对应于启动容器的代理正在运行的用户,但 podman 以 root 身份安装卷。
如何解决或解决这个问题?该插件似乎没有覆盖用户的选项,向args 添加自定义-u 选项似乎没有帮助,docker run jenkins 显示然后只包含两个-u 选项,但第一个( jenkins one) 似乎被使用了...
【问题讨论】: