所以我遇到了一些 docker 网络问题,无法正常工作。我有一个适用于我所有系统的撰写文件。 gitlab、sonar、nexus、Jenkins 都位于这个 compose 文件中。 容器:prod-gitlab、prod-jenkins、prod-sonar、prod-nexus 我将 Jenkins 从站设置为使用 Docker 插件,以便可以根据需要创建从站。连接到的 docker 主机 prod-jenkins 与运行 prod-jenkins 的主机是同一台主机。所以这一切都在同一台主机上,不需要外部 PC。 现在,我的问题是我的 docker 从机无法访问 prod-gitlab 来检索源代码。我的 prod-jenkins 能够解析主机名“prod-gitlab”,因为它们位于同一个 compose 文件内(即在同一个 docker 网络上)。 即使我添加环境变量 --link systems_prod-gitlab_1 或者如果我只是执行 --network systems,我也无法找到一种方法来链接我的 docker 从机到该网络。需要注意的是,gitlab 在端口 80 上运行。因此,我公开端口 8081,而内部端口为 80。我无法在构建中指定外部端口(8081),因为这样 jenkins 将无法与 gitlab 连接,并会抛出异常一个错误。我想到的一个解决方案是找到一种方法让 gitlab 在 80 以外的端口上运行并使内部和外部匹配,但我只想在绝对必要时才这样做。所以我想简化一下 “我如何将我的 docker 从设备与我的所有系统一起连接到 docker 网络,因为即使我现在可以将其连接到 gitlab,稍后它也将无法连接到 nexus 和 sonar。所以我需要它们在相同的 docker 网络”?
实际上该插件有一个名为“容器设置”的部分,您可以在其中指定 docker 网络。抱歉,伙计们,我知道这一定很简单。我猜另一部分中的环境部分是用于构建环境变量的。
我在 Ubuntu 配置上的主/从配置上也有类似的问题。 Master运行在Ubuntu 16.04上,Slave运行在Ubuntu 18.04上。经过多次检查,我在 Ubuntu 16.04 上创建了从站,它们没有 DNS 问题。