Skip to main content

在TestContainers中实现配置的容器hostname以解决容器之间访问问题

· One min read
orange
programmer on jvm platform

在使用TestContainers启动容器时, 可能会存在容器之间依赖的情况.
如果其中一个容器依赖于另外一个容器, 那么需要在启动被依赖的容器时, 指定hostname.
这样有依赖需求的容器可以直接通过hostname来访问被依赖的容器.
以便于被依赖的容器能够正确的解析依赖容器的hostname. 下面将介绍如何在TestContainers中实现配置的容器hostname以解决容器之间访问问题.

解决方案

在启动容器时, 通过withNetworkAliases方法指定容器的hostname

withNetworkAliases("ldap")

需要注意的是, 这种实现方式是采用docker--network-alias参数实现的, 该参数的作用是为容器指定hostname
另外需要确保需要互相访问的容器要在同一个network中, 否则无法互相访问.
可以参考以下代码来配置network

val network = Network.newNetwork()
container.withNetwork(network)

参考