Docker Slave连接到Docker Gitlab | Docker DNS

时间:2018-02-06 03:52:59

标签: docker jenkins docker-compose docker-networking jenkins-slave

所以我遇到了一些我无法工作的docker网络问题。我有一个所有系统的撰写文件。 gitlab,sonar,nexus,jenkins住在这个撰写文件中。 容器:prod-gitlab,prod-jenkins,prod-sonar,prod-nexus 我让我的jenkins slave设置为使用Docker插件,因此可以根据需要创建从属设备。 docker host prod-jenkins连接到的是运行prod-jenkins的主机。所以这一切都在同一台主机上,不需要外部PC。 现在,我的问题是我的docker slave无法访问prod-gitlab来检索源代码。我的prod-jenkins能够解析主机名“prod-gitlab”,因为它们位于同一个组合文件中(即在同一个docker网络上)。 即使我添加了环境变量--link systems_prod-gitlab_1,或者我只是做网络系统,我找不到链接我的docker奴隶的方法。重要的是要注意gitlab在端口80上运行。所以我暴露端口8081而内部端口是80.我无法在我的构建中指定外部端口(8081)因为然后jenkins将无法连接gitlab并且会抛出一个错误。我想到的一个解决方案是找到一种方法让gitlab在80以外的端口上运行并进行内部和外部匹配,但我只想这样做,如果我绝对必须的话。所以我想简化一下 “如何让我的docker slave进入我的所有系统的docker网络,因为即使我现在可以将它连接到gitlab,它也将无法连接到nexus和sonar。所以我需要它们在同一个码头网络上“

Jenkins Slave Cant Connect Job Build Description Docker Template

2 个答案:

答案 0 :(得分:0)

实际上插件有一个名为“容器设置”的部分,您可以在其中指定docker网络。对不起,伙计们,我知道这一定很简单。我想其他部分的环境部分是用于构建环境变量。

答案 1 :(得分:0)

我在Ubuntu配置上有一个类似的Master / Slave问题。主服务器在Ubuntu 16.04上运行,从服务器在Ubuntu 18.04上运行。经过几次检查后,我在Ubuntu 16.04上创建了从属服务器,它们没有DNS问题。