Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用多个Docker容器设置Jenkins的最佳方法?_Docker_Jenkins_Docker Compose - Fatal编程技术网

用多个Docker容器设置Jenkins的最佳方法?

用多个Docker容器设置Jenkins的最佳方法?,docker,jenkins,docker-compose,Docker,Jenkins,Docker Compose,全部, 我到处都找了,但找不到可靠的答案。这个问题对于一些专业人士来说可能很简单,但请帮我解决这个问题 我们需要Jenkins能够访问Docker容器并在其中构建。目标Docker容器是使用单独的Docker compose构建和实例化的。在下面的每个场景中,连接Jenkins和Docker容器的最佳方式是什么 场景1:Jenkins是在主机上自行设置的。使用自己的Docker compose文件实例化的2个Docker容器。在这种情况下,Jenkins如何连接到容器?主机无法ping Dock

全部,

我到处都找了,但找不到可靠的答案。这个问题对于一些专业人士来说可能很简单,但请帮我解决这个问题

我们需要Jenkins能够访问Docker容器并在其中构建。目标Docker容器是使用单独的Docker compose构建和实例化的。在下面的每个场景中,连接Jenkins和Docker容器的最佳方式是什么

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

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

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

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


没有人接受这一个?Docker&Jenkins专家?