Смысл использования контейнеров в том, чтобы они могли запускаться независимо друг от друга. Если такое происходит, значит в ваша архитектура построена неправильно.
Посмотрите grapesjs + mjml
А вообще, у маркетинговых сервисов есть инструменты для рассылки, в которых маркетологи будут править всё сами (заливаете html, они клонируют и правят через wysiwyg). Так работают Pardot, MailChimp, GetResponse и, кажется, AmoCRM.
Надо не по коду смотреть. Вполне может оказаться, что вы просто по разному мыслите и подходите к реализации. Есть два типа программистов: те, кто умеет думать головой, и те, кто этой головой только ест.
https://linuxconfig.org/how-to-create-a-docker-bas...