【发布时间】:2018-02-06 03:52:58
【问题描述】:
所以我有一点 docker 网络问题,我无法开始工作。我的所有系统都有一个撰写文件。 gitlab、sonar、nexus、jenkins 都在这个 compose 文件中。 容器:prod-gitlab、prod-jenkins、prod-sonar、prod-nexus 我将我的 jenkins 从站设置为使用 Docker 插件,因此可以根据需要创建从站。 prod-jenkins 连接到的 docker 主机与运行 prod-jenkins 的主机相同。所以这一切都在同一台主机上,不需要外部 PC。 现在,我的问题是我的 docker slave 无法访问 prod-gitlab 来检索源代码。我的 prod-jenkins 能够解析主机名“prod-gitlab”,因为它们位于同一个 compose 文件中(即在同一个 docker 网络上)。 即使我添加了环境变量 --link systems_prod-gitlab_1 或者我只是添加了 --network systems,我也找不到将我的 docker slave 链接到这个网络的方法。重要的是要注意 gitlab 在端口 80 上运行。所以我在内部端口为 80 时公开端口 8081。我无法在我的构建中指定外部端口(8081),因为这样 jenkins 将无法与 gitlab 连接并会抛出一个错误。我想到的一个解决方案是找到一种方法让 gitlab 在 80 以外的端口上运行并进行内部和外部匹配,但我只想在绝对必须的情况下这样做。所以我想简化 “我如何让我的 docker slave 进入我所有系统的 docker 网络,因为即使我现在可以将它连接到 gitlab,它稍后也会无法连接到 nexus 和声纳。所以我需要它们在同一个 docker 网络上”?
【问题讨论】:
标签: docker jenkins docker-compose docker-networking jenkins-slave