Есть несколько способов думать об этом.Если ваш репозиторий предназначен для сборки всего приложения, то имеет смысл, чтобы файл docker-compose представлял собой совокупность нескольких спецификаций изображений, как вы указали выше.Может даже оказаться возможным содержать источник для создания каждого изображения в одном и том же репо.
Однако, поскольку создание и тестирование каждого изображения усложняется, вы можете рассмотреть возможность разделения источника на его собственный репо.Если вы сделаете это, вы можете просто опубликовать независимо созданный и протестированный разделенный образ в реестре Docker и изменить свой docker-compose.yml в своем приложении, чтобы он извлекал этот образ вместо сборки из исходного кода.
Для простоты я бы начал со всего в одном репо и разбил бы все по необходимости.