我有一个使用覆盖扩展的 docker-compose 文件。我使用 V2 语法,并在我的 Compose 文件中定义了两个容器将共享的网络。然后我扩展了 Compose 文件,以区分开发和生产之间的设置。
当所有内容都放在一个文件中时,docker-compose 将使用网络定义。现在,使用覆盖后,docker 会忽略网络,创建自己的网络并警告我未使用的网络。
我的docker-compose.yml:
version: '2'
services:
inexgw:
ports:
- "45308:45308"
expose:
- "45309"
networks:
- gcm
depends_on:
- spagw
spagw:
networks:
- gcm
environment:
- LOGDIR=/logs
- DBDIR=/db
volumes:
- ${LOGDIR}:/logs
- ${DBDIR}:/db
networks:
gcm:
我的docker-compose.override.yml:
version: '2'
services:
inexgw:
restart: always
build:
context: ./gcm_inex/
dockerfile: docker/Dockerfile
environment:
- GRAYLOGSRV=10.10.10.3
- LOGDIR=/logs
- LOGLEVEL=INFO
volumes:
- ${LOGDIR}:/logs
spagw:
restart: always
build:
context: ./django/
dockerfile: docker/Dockerfile
ports:
- "45230:45230"
environment:
- GRAYLOGSRV=10.10.10.3
- LOGDIR=/logs
- DBDIR=/db
- LOGLEVEL=INFO
输出docker给我:
WARNING: Some networks were defined but are not used by any service: gcm
Creating network "spagcm_default" with the default driver
Creating spagcm_spagw_1
Creating spagcm_inexgw_1
如果有人能阐明这种行为,我将不胜感激......
答案1
发现这个问题在 1.6.0 和 1.6.2 之间的某个版本中已经得到解决。
只需升级到最新版本docker-compose
,问题就会消失:
https://docs.docker.com/compose/install/