现在我正在设置一个基于码头工人图像的部署应用程序。码头工人和码头工人中的码头工人组成块无端口的一个端口
我用gitlab词来:
- 测试各种服务
- 构建每个服务
- Dockerize每幅图像(创建搬运工容器)
- 运行集成测试(启动搬运工撰写启动所有服务在特殊端口上运行集成测试)
- 停止产品图像并运行新图像
我为每个服务都做了这个,但是我遇到了一个问题。
当我开始我的码头集装箱进行集成测试时,它是在gitlab ci任务中设置的。对于每个任务使用基于docker的runner。我也安装我的主机码头套接字,以便能够在码头工人中使用码头工人。
所以我的gradle docker镜像是由gitlab runner启动的。然后docker将被安装,所有的图片将使用docker撰写。
一个微服务监听端口10004.在泊坞窗撰写文件中有一个11004:10004端口映射。
我的集成测试尝试连接到端口11004.但现在不起作用。
当我连接到运行泊坞窗图像进行合成,而它试图通过手动调用
wget ip: port
我刚刚得到的消息连接并等待响应执行集成测试,然后我不能做到这一点。我的测试可以连接成功。我的服务不记录有关新连接的任何消息。
当我在我的主机外壳内执行这个wget
命令然后它工作。
这是一个公共ip,在我的容器中,我也可以使用telnet
和wget
连接到其他端口。当我尝试从泊坞窗实例中的泊坞窗连接时,只有一个服务的一个端口被破坏。
当我不使用docker撰写时,它的工作原理。 Docker撰写似乎设置了一个特殊的默认网络,它做了一些奇怪的事情。
设置网络到主机也工作...
所以有没有人也做出这样的体验使用泊坞窗组成是什么时候?
同样的装置作品在码头工人的Mac完美无瑕,但我的服务器上的Debian 8
运行我的解决方案,现在是使用shell亚军,以避免码头工人码头工人的问题。它也在那里工作。
因此码头工人与码头工人组合的码头似乎有一个丑陋的错误。
我正在写作,而我坐在地铁里,但我希望描述我的问题也足以谈论经验。我认为我们不需要一些源代码来查找错误的配置,因为它在docker和Mac上无需docker即可运行。