首页 > 解决方案 > 使用多个 Docker 容器设置 Jenkins 的最佳方法是什么?

问题描述

全部,

我已经搜索了这个高低,但无法找到可靠的答案。对于一些专业人士来说,这个问题可能很简单,但请帮我解决这个问题......

我们有一种情况,我们需要 Jenkins 能够在 Docker 容器中访问和构建。目标 Docker 容器是使用单独的 docker-compose 构建和实例化的。在以下每个场景中将 Jenkins 与 Docker 容器连接的最佳方式是什么?

场景 1: Jenkins 是在它自己的主机上设置的。2 个使用自己的 docker-compose 文件实例化的 Docker 容器。在这种情况下,Jenkins 如何连接到容器?主机无法 ping Docker 容器,因为两者都在不同的网络上(物理上的主机和 docker DNS 上的 Docker 容器),因此可能也没有 SSH?

场景 2:我们更喜欢 Jenkins 在自己的容器中(使用自己的 docker-compose),这样我们就可以将其复制到其他环境中。在这种情况下,Jenkins 如何连接到容器?即使我在两个 docker-compose 文件中使用相同的网络,Jenkins 容器也无法 ping Docker 容器。相反,它会自行创建额外的桥接网络,例如从下面的第二个场景中,如果我在 Docker-Compose 01 中有 network-01,并且如果我在 Docker-Compose 2 中提到相同的内容,则 docker 会为 Compose 2 创建额外的网络。结果,我无法从 Jenkins 容器 ping Node/Mongo 容器(所以我猜也没有 SSH)。

注意 1:我在两个 docker 映像上都公开了 22 个,即 Node 和 Mongo...
注意 2:我们当前的设置在主机上有 Jenkins,从容器到主机公开了 docker 卷。这是首选方法吗?

我错过了房间里的大象还是解决方案很复杂(不应该!)?

在此处输入图像描述

标签: dockerjenkinsdocker-compose

解决方案


推荐阅读