Если есть разработчики под windows, то надо иметь в виду что докер несовместим с node.js watch, golang fresh и т.п., потому что не будут работать fs.notify(т.е. nodedemon не будет реагировать на изменения). Поэтому в случае с нодой я кидаю в докер только базы, редисы и т.п. Данные базы лучше кидать в external volumes, если просто в папку, то будут ломаться, особо чувствителен к этому postgre. Заморачиваться со сборкой образа, его загрузкой в регистри есть смысл если много тачек, иначе это будет сплошной гемморой, собирается долго, образы весят дохрена, проще через volumes подключить и в контейнере выполнять composer update, npm i, migrate up, а чтобы версии совпадали давно придуманы lock file'ы, правда в php да, он не спасет, потому что в packagist версия так-то даже не обязательна при создании пакета)