docker-compose.yml:
version: '3.7'
services:
db:
image: mysql:8.0
docker-compose.test.yml:
version: '3.7'
services:
db:
ports:
- 3306:3306
docker-compose config
不 显示端口。为什么?
我正在尝试显示有效的撰写文件,意思是:docker-compose up
也使用的合并结果。
docker-compose 版本 1.25.0
根据文档,docker-compose只会自动查找名为
docker-compose.yml
和docker-compose.override.yml
的文件:
默认情况下,Compose 读取两个文件,一个
和一个可选的docker-compose.yml
文件。按照惯例,docker-compose.override.yml
包含您的基本配置。顾名思义,覆盖文件可以包含现有服务或全新服务的配置覆盖。docker-compose.yml
如果您想使用其他撰写文件,则需要使用
-f <filename>
: 显式指定它们
docker-compose up -f docker-compose.yml -f docker-compose.test.yml
默认情况下,docker-compose 会查找 docker-compose.yml 文件。您所面临的问题正在发生,因为端口是在其他文件中配置的,而 DockerCompose 对此一无所知。如果你想检查其他文件的配置,需要将其作为参数传递:
docker-compose -f ./path/to/docker-compose.test.yml config
或者您可以将端口配置放在第一个文件中,如下所示:
version: '3.7'
services:
db:
image: mysql:8.0
ports:
- 3306:3306
它应该工作得很好。