Вы можете использовать якоря YAML (я думаю, что это термин) для определения общих блоков для ссылки в одном файле.
# common pieces
x-common-params
environment:
- SERVER_SERVLET-PATH=/
- SERVER_PORT=80
... more ...
services:
myapp:
build: .
image: my-app-image:uat
ports:
- "8080:8080"
<<: *common-params
Если вам нужно обмениваться файлами, это напрямую не поддерживается, но все же может быть выполнено несколькими разными способами.
В моем случае у меня есть один файл, содержащий все общие части. Затем в файл стека (в вашем случае - файл compose) я помещаю теги jinja2, которые нужно заполнить. Затем я использую утилиту командной строки j2, чтобы заполнить их во время сборки и развернуть сгенерированный файл.
В проект podman добавлен шаг препроцессора c, поэтому вы можете использовать "#include". Я знаю, что это не просто docker, но кажется довольно эффективным.