flo*_*pic 8 jenkins docker jenkins-pipeline
我正在尝试执行Jenkins Pipeline中的代码示例:https://jenkins.io/doc/book/pipeline/docker/
node {
/* Requires the Docker Pipeline plugin to be installed */
docker.image('maven:3-alpine').inside('-v $HOME/.m2:/root/.m2') {
stage('Build') {
sh 'mvn -B'
}
}
}
Run Code Online (Sandbox Code Playgroud)
并告诉我这个错误:
[Pipeline] withDockerContainer
Jenkins does not seem to be running inside a container
[Pipeline] // withDockerContainer
Run Code Online (Sandbox Code Playgroud)
我不知道他为什么不做任何事情就这样停下来.
我已经在最新版本上安装了docker,docker plugin/docker管道.
在配置工具中,我添加了安装根路径.
我错过了什么 ?提前致谢
此消息是正常的调试消息,可能有点令人困惑,但不是错误.在编写Jenkins管道代码时,在初始化期间它会检查该步骤是否已在容器中运行.我认为这个信息可以写得更好.
如果您遇到的问题多于此消息,请提供整个日志.听起来可能无法分配节点,或者未安装docker客户端,或者无法提取docker镜像.
小智 5
这个问题有点老了,但我遇到过类似的情况,我想分享一下。
我注意到詹金斯在管道日志的末尾提到了问题的原因。
例如,就我而言,问题指出:
java.io.IOException: Failed to run top '0458e2cc8b4e09c53bb89f680026fc8d035d7e608ed0b60912d9a61ebb4fea4d'. Error: Error response from daemon: Container 0458e2cc8b4e09c53bb89f680026fc8d035d7e608ed0b60912d9a61ebb4fea4d is not running
Run Code Online (Sandbox Code Playgroud)
当检查发生这种情况的阶段时dockerImage.inside(),它与您在使用时提到的类似,在我的情况下,原因是我的 Dockefile 已经定义了 anentrypoint并且在使用该inside功能时,jenkins 会感到困惑,因此为了避免这种情况,请尝试entrypoint通过将其作为 a 传递来覆盖函数的参数inside如下:
dockerImage.inside("--entrypoint=''") {
echo "Tests passed"
}
Run Code Online (Sandbox Code Playgroud)
查找问题的另一个好方法是访问您的 jenkins 服务器并列出 docker 容器,docker ps -a您可能会发现构建容器失败,检查日志然后您会得到提示,在我的情况下,日志显示cat: 1: ./entrypoint.sh: not found。
| 归档时间: |
|
| 查看次数: |
8628 次 |
| 最近记录: |