Расширяя
Можно расширять или использовать несколько файлов docker-compose и их сервисов и связать их в один файл.Вы можете взглянуть на эту ссылку , чтобы понять, как другие виды использования нескольких составных файлов.Но вы еще не можете включить файл без связывания связанных файлов, как вы упомянули.
Здесь я определил common-services.yaml:
version: '2'
services:
nginx_a:
image: nginx:latest
container_name: nginx
ports:
- 81:80
- 1443:443
А затем я создал Docker-compose.yml и включает в себя файл common-services.yml и собственный сервис.
services:
nginx:
extends:
file: common-services.yml
service: nginx_a
nginx_b:
image: nginx:latest
container_name: nginx_b
volumes:
ports:
- 82:80
- 2443:443
По методике .env
А если вы хотите избежатьИспользование нескольких файлов в цепочке также есть метод с файлами .env.Я перепишу предыдущий пример с техникой .env.
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=common-services.yml:docker-compose.yml
Давайте добавим еще один сервис в качестве примера в common-services.yml
version: '2'
services:
ngin_a:
image: nginx:latest
container_name: nginx_a
ports:
- 81:80
- 1443:443
redis_c:
image: redis:latest
container_name: redis_c
ports:
- 6381:6380
И, наконец, загрузим все из нихв файле docker-compose без упоминания событий для этих сервисов.
version: '2'
services:
nginx_b:
image: nginx:latest
container_name: nginx_b
ports:
- 82:80
- 2443:443
env_file:
- .env
В итоге у вас будет три запущенных сервиса.