docker-compose - это инструмент для создания композиции из докер-контейнеров
gitlab ci services - это штука для поднятия каких-то сервисов доступных во время процесса ci/cd
И то, и другое, позволяет управлять приложением из нескольких образов, верно?
Нет, не верно - это делает только docker-compose
Принципиально они предназначены для решения совершенно разных задач.
Короче вы пытаетесь сравнить тёплое с мягким.
Вот если у меня зависимость от СУБД, где её надо прописывать? В services? В .docker-compose.yml?
Если эта зависимость возникает на этапе тестирования, то да - в services
Если эта зависимость возникает на этапе работы в проде - тогда уже разбираться с продакшен окружением надо, а не с гитлабом, в том числе и с композом, если вы используете его.