Jenkins无法使用docker插件启动docker slave

问题描述 投票:5回答:2

我正在使用Jenkins Docker插件在docker主机上动态启动slave。 Jenkins master在同一台主机上运行。在构建时,它会在docker-host上选择一个随机端口,但无法连接到它。它启动了docker容器。这是日志。不要多说这个。如何调试问题?

INFO: Started container ID 54fe5780ca820a6e2b7cae40610cfc3229dbf889b0c66d6e34a39b74e13aaec7 for node slave-0000w16w841rc from image: jenkinsubuntu
Feb 28, 2019 9:35:54 PM com.nirima.jenkins.plugins.docker.utils.PortUtils$ConnectionCheckSSH execute
INFO: SSH port is open on 127.0.0.1:10007
[02/28/19 21:35:54] SSH Launch of slave-0000w16w841rc on 127.0.0.1 failed in 29 ms 
Feb 28, 2019 9:36:03 PM hudson.slaves.NodeProvisioner$2 run
INFO: Image of jenkinsubuntu provisioning successfully completed. We have now 7 computer(s) `
docker jenkins jenkins-plugins centos7
2个回答
5
投票

没有找到答案。但最终选择了连接方法到attach docker containerin Docker模板的docker插件,这反过来使它工作。


2
投票

虽然您已经发布了另一种方法,但是在您询问如何调试问题时,您应该做什么并注意

  • 你需要一个包含SSHD的图像,而plugin's documentation建议使用jenkins/ssh-slave作为自定义图像的基础。
  • 根据您提供的日志,您似乎使用名为jenkinsubuntu的自定义图像,假设基于jenkins/ssh-slave的图像,那么您需要确保您没有覆盖the documentation中描述的原始入口点: 避免覆盖docker命令,因为SSH Launcher依赖它。 在代理程序运行时启动之前,您可以使用Entrypoint在构建代理程序容器内运行某些辅助服务并建立连接。确保您的入口点最终运行传递的命令: 执行“$ @”
  • 最后确保发生ssh的主机包含一个私钥,该私钥与容器内注入的公钥相匹配。 如果第一点和第二点都得到了解,那么这里应该怎么做才能调试ssh问题。 您可以登录尝试在运行时使用ssh登录到同一容器。 如果上一步有效,那么使用docker logs或检查/var/log检查日志,请注意您可能需要将LogLevel下的/etc/ssh/sshd_config更改为VERBOSE,以便在/var/log/auth.log文件中保存ssh登录尝试的所有详细信息,以便识别问题
© www.soinside.com 2019 - 2024. All rights reserved.