Есть 2 способа достичь того, что вам нужно, вы можете решить использовать один из них или оба одновременно, поскольку они работают немного по-разному:
Несколько составных файлов
Вы можетеукажите несколько файлов компоновки при запуске команды компоновки Docker, например, вы можете настроить свой проект с помощью:
docker-compose -f config1.yml -f config2.yml up
Вы также можете использовать переменную окружения для указания ваших файлов:
COMPOSE_FILE=config1.yml:config2.yml docker-compose up
Что происходит, так это то, что docker compose создает единую конфигурацию, объединяющую то, что вы определили в каждом из них.
Здесь документация, показывающая , как объединить несколько файлов составления .
Вы также можете сгенерироватьваш окончательный файл конфигурации, в котором выполняется команда config
.
Якоря YAML
Поскольку файлы docker compose являются в основном файлами YAML, вы можете использовать Якоря YAML для определенияблок свойств и повторно использовать их в нескольких частях вашей конфигурации.
Например:
version: '3'
common: &common
image: "myrepo/myimage"
restart: "unless-stopped"
volumes:
- "volume:/mnt/myvolume"
services:
service1:
<<: *common
ports:
- "5000:5000"
service2:
<<: *common
environment:
- MYENV: value