0

我想集成测试在 docker 环境中运行的一些服务。他们必须在连接时互相交谈。所以我需要以某种方式暴露彼此之间的端口。是否可以使用测试容器库进行此设置?我没有找到任何码头。

经过测试的应用程序在本地运行,它将连接到 dockerised 服务器:

  • mysql
  • 后端一

为了使后端更加困难,一台服务器需要与 mysql 服务通信。这可以使用测试容器吗?

4

2 回答 2

3

Testcontainers 支持网络,测试中有几个例子

您需要首先创建一个网络(通过Network.newNetwork()),然后使用withNetwork/withNetworkAliases将您的容器“连接”到同一个网络。

于 2019-07-15T13:27:25.297 回答
-1

通常,当容器之间需要网络通信时,应该在docker 级别创建一个网络,并且容器应该共享它。

使用 可以简化事情docker-compose,默认情况下,它会为docker-compose文件中声明的所有服务创建一个网络。然后容器可以通过它们的服务名称进行通信。

从未使用过Testcontainers 项目,但我在具有 docker -compose 模块的文档中看到。

从上面的网址引用:

Testcontainers 将启动一个小型“大使”容器,它将在 Compose 管理的容器和测试可访问的端口之间进行代理。这是使用一个单独的、最小的容器来完成的,该容器将 socat 作为 TCP 代理运行。

还有一个示例,您可以基于 docs url。

于 2019-07-15T09:29:10.780 回答