Это не вопрос желания. Если у вас интерпретируемый ЯП, вам придется хранить исходники на сервере, нет другого варианта запустить проект. А вот запихивать файлы проекта в имадж - не верный подход, это не докер вэй
Тут можно поспорить, например в п.2 для такого приложения (если в бэке PHP или Python) пересобирать образы вообще не требуется, запулив раз они используются постоянно. Пересобирать потребуется только для обновления компонентов, БД, бэка или веб сервера. Т.е. п.2 как бы и не нужен, нужно просто заменить файлы проекта на сервере и перезапустить контейнер с бэком
Автор маппит 5434 порт на локалхост, который пробрасывается в контейнер. По дефолту Постгре слушает все интерфейсы, т.е. подключение на localhost:5434 должно работать и более того, у меня работает. Поэтому и надо убедиться, о чем я просил в комментах, что порт доступен.
А вообще, я бы не рекомендовал играться с OUTPUT полиси в DROP, поставьте ACCEPT и все будет работать. Вы же не знаете с какого порта будет происходить соединение, поскольку он выбирается рандомно