gpt4 book ai didi

jenkins - 无法在 docker 代理中运行 sh 步骤 : script. sh Not Found

转载 作者:行者123 更新时间:2023-12-01 00:39:41 24 4
gpt4 key购买 nike

尝试运行以下声明性管道时:

pipeline {
agent { docker 'alpine' }
stages {
stage('Test') {
steps {
sh('printenv')
}
}
}
}

我收到错误:
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Agent Setup)
[Pipeline] sh
[TmpTest] Running shell script
+ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
Digest: sha256:1072e499f3f655a032e88542330cf75b02e7bdf673278f701d7ba61629ee3ebe
Status: Image is up to date for alpine:latest
[Pipeline] }
[Pipeline] // stage
[Pipeline] sh
[TmpTest] Running shell script
+ docker inspect -f . alpine
.
[Pipeline] withDockerContainer
Jenkins does not seem to be running inside a container
$ docker run -t -d -u 107:113 -w /var/lib/jenkins/workspace/TmpTest -v /var/lib/jenkins/workspace/TmpTest:/var/lib/jenkins/workspace/TmpTest:rw,z -v /var/lib/jenkins/workspace/TmpTest@tmp:/var/lib/jenkins/workspace/TmpTest@tmp:rw,z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat alpine
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Provision Server)
[Pipeline] sh
[TmpTest] Running shell script
sh: /var/lib/jenkins/workspace/TmpTest@tmp/durable-1abfbc69/script.sh: not found
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
$ docker stop --time=1 db551b51404ba6305f68f9086320634eeea3d515be134e5e55b51c3c9f1eb568
$ docker rm -f db551b51404ba6305f68f9086320634eeea3d515be134e5e55b51c3c9f1eb568
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 127
Finished: FAILURE

监控管道时 @tmp目录在运行时我可以看到 script.sh短期创建。当管道尝试在正在运行的容器中执行它时,我无法判断它是已创建还是已删除。

一些系统细节

Jenkins 作为安装了 docker 的单节点系统运行。
Jenkins v2.60.1
(all plugins fully updated)

docker --version
Docker version 17.06.0-ce, build 02c1d87

最佳答案

具有相同的设置(EC2 实例上的单个 Jenkins 2.73.1 主机,而不是容器内,使用 Docker 17.09.0-ce)和相同的行为,具有声明性和脚本化管道。
如果您指定,它会尝试在主机本身上运行脚本

sh 'sh ./yourscript.sh'

或者
sh './yourscript.sh'

而不是 sh 'script.sh'

关于jenkins - 无法在 docker 代理中运行 sh 步骤 : script. sh Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950361/

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