我想集成测试在docker环境中运行的少量服务。他们在连接时必须互相交谈。因此,我需要以某种方式公开彼此之间的端口。使用测试容器库是否可以进行此设置?我没有找到任何底座。
在本地运行的经过测试的应用程序,它将连接到dockerized服务器:
为了使后端更加困难,一台服务器需要与mysql服务对话。 是否可以使用testcontainer?
答案 0 :(得分:1)
测试容器支持网络,有a few examples in the tests。
您需要先创建一个网络(通过Network.newNetwork()
,然后使用withNetwork
/ withNetworkAliases
将容器“连接”到同一网络。
答案 1 :(得分:0)
通常,当需要容器之间的网络通信时,应在docker level处创建网络,并且容器应共享该网络。
可以使用docker-compose
简化操作,默认情况下,docker-compose
文件中声明的所有服务都会创建一个网络。然后,容器可以通过其服务名称进行通信。
我从未使用过 Testcontainers项目,但在包含docker-compose module的文档中看到了。
从URL上方引用:
测试容器将旋转一个小的“大使”容器,该容器将 组成托管容器和端口之间的代理 可访问您的测试。这是使用单独的,最少的 将socat作为TCP代理运行的容器。
还有一个可以基于文档url的示例。