Хочеться "порочный" круг разорвать, чтобы билд и деплой были не на прямую связанны.
Не понятно, чем связаны сборка и деплой у Вас?
Я считаю, что связаны они тем, что оба являются стадиями или по другому этапами в непрерывной интеграции (CI).
И в чем порочность, которая требует разрыва?
На этапе сборки происходит к примеру компиляция, линковка, ... результатом является docker образ. Который на этом же этапе помещается в хранилище артефактов т.е. docker registry (docker push). На этапе деплоя, происходит подключение к серверу и доставка артифакта с хранилища (docker pull) и запуск (docker run) к примеру.
Почему я считаю, что эти этапы прямую не связанны?
Между сборкой и деплоем в непрерывной интеграции принято вставлять этап тестирования и даже профилирования (нагрузочного тестирования) иногда. И в зависимости от результатов тестирования цепочка этапов(pipline) может прерваться. Выполнения деплоя может и не быть. В чем собственно и цель непрерывной интеграции от старого подхода, когда собирали и доставляли на производство. Цель: доставлять жизнеспособный продукт потребителям непрерывно.