在TestContainers中实现配置的容器hostname以解决容器之间访问问题
· One min read
在使用TestContainers
启动容器时, 可能会存在容器之间依赖的情况.
如果其中一个容器依赖于另外一个容器, 那么需要在启动被依赖的容器时, 指定hostname
.
这样有依赖需求的容器可以直接通过hostname
来访问被依赖的容器.
以便于被依赖的容器能够正确的解析依赖容器的hostname
.
下面将介绍如何在TestContainers
中实现配置的容器hostname
以解决容器之间访问问题.
解决方案
在启动容器时, 通过withNetworkAliases
方法指定容器的hostname
withNetworkAliases("ldap")
需要注意的是, 这种实现方式是采用docker
的--network-alias
参数实现的, 该参数的作用是为容器指定hostname
另外需要确保需要互相访问的容器要在同一个network
中, 否则无法互相访问.
可以参考以下代码来配置network
val network = Network.newNetwork()
container.withNetwork(network)