我有很多服务正在运行并共享默认网络。
现在,我想创建一个与默认网络隔离的IntegrationTest容器,因此我也可以测试haProxy。
integration-test:
image: image:some-image:tag
container_name: integration-test
command: node_modules/.bin/jest integration/
networks:
- frontend
depends_on:
- mongodb
是否已将网络分配给该服务,从而将其与其他服务隔离开了?还是我需要将另一个网络分配给所有其他服务?
答案 0 :(得分:1)
TLDR;是的,它将把集成测试与您的docker-compose文件中的任何其他服务分开。
更长的版本...
默认情况下,docker-compose以project_default
的模式为docker-compose.yml文件创建一个桥接网络(又称为默认网络)。
以下两个服务定义完全相同。
app:
build: .
networks:
- default
app:
build: .
如果您希望服务连接到其他网络,则必须同时列出default
和其他网络。
app:
build: .
networks:
- default
- frontend
如果您只希望您的服务位于其他服务上,则只需从网络中删除default
。
app:
build: .
networks:
- frontend
如果您对将哪些容器连接到什么网络有疑问,可以随时检查容器或网络。例如。 docker inspect frontend
或docker inspect project_app_1