1
我在使用Jenkins声明性管道在Docker容器中运行shell命令时遇到问题。使用码头工作流程插件。它似乎找不到命令'猫',暗示路径问题。我已经将任务限制在一个简单的任务(env shell命令)中,在一个非常简单的图像(高山)中,并验证了/ bin/cat的工作原理。我的错误/误解是什么?Jenkins码头工作流程插件在没有PATH的情况下执行
更新:我包括詹金斯生成的整个命令。我没有添加所有这些额外的参数,由于某些原因,詹金斯似乎将他们注入我的控制之外。
$ docker run -t -d -u 496:493 -w /jenkins/workspace/[email protected] -v /jenkins/workspace/[email protected]:/jenkins/workspace/[email protected]:rw -v /jenkins/workspace/[email protected]@tmp:/jenkins/workspace/[email protected]@tmp:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -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] // withDockerContainer
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] End of Pipeline
java.io.IOException: Failed to run image 'alpine'. Error: docker: Error response from daemon: Container command 'cat' not found or does not exist..
at org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:125)
这里是我的流水线阶段:
stage("test") {
agent {
docker {
image 'alpine'
label 'docker-enabled'
}
}
steps {
sh 'env'
}
}
如果你在linux上运行,那么'cat/etc/issue'的结果是什么? – Avi
尝试运行'echo $ PATH'来查看路径是什么。如果路径没有正确设置。 '搬运工运行--name ALP -dt高山cat'和'搬运工EXEC ALP SH -c “ENV”'给我: 'HOSTNAME = a2b6eeb0788a SHLVL = 1个 HOME = /根 PATH =的/ usr /本地/ sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin PWD =/ ' – Rik
这是Jenkins特定的失败。当我从命令行运行时,Cat在执行路径上。要求输出 - '$搬运工运行-id --entrypoint猫高山3719b36a40ecc36eada4674def442b2140f22ed2aec030390acd2ef838763722 $搬运工EXEC 3719猫的/ etc /问题 欢迎高山的Linux 3.4内核 \ r上的\ M(\ L)' –