在circleci上,当我为一个工作声明多个泊坞窗时:
dockers:
app: company/image
selenium: selenium/image
app将公开端口4000,硒将公开端口4444。 然后从应用程序容器中,我可以通过localhost:4444访问硒服务,在硒容器中,我可以通过localhost:4000访问应用程序Web服务器。
但是,docker-compose的行为有所不同。我只允许我从应用程序访问selenium:4444,从硒访问app:4000。
我希望docker-compose的行为类似于circleci,其中它允许我使用localhost:port来访问其他服务。我该怎么办?
答案 0 :(得分:0)
达到上述目的的方法是通过networking_mode
:
我需要告诉docker-compose使用networking_mode = "services:app"
运行selenium,以便仅使用localhost:PORT
就可以从应用访问selenium侦听的每个端口(反之亦然)
在此进行解释:Can docker-compose share an ip between services with discrete ports?
在docker网络模型中,https://codability.in/docker-networking-explained/
对此进行了解释。