Я бы настоятельно рекомендовал размещать ваш внешний и внутренний компоненты в разных контейнерах, поскольку это позволяет вам независимо обновлять, тестировать, масштабировать и развертывать службы. По сути, это архитектура «микроуслуг», которая очень хорошо работает с независимыми контейнерами Docker.
Если вам интересно, как может выглядеть рабочий пример, вот проект, над которым я работал, в котором мы использовали 1 контейнер для внешнего интерфейса (Angular) и 3 контейнера для внутреннего (сервер OpenLiberty / JavaEE / MicroProfile на Java) :
https://github.com/liberty-bikes/liberty-bikes