Для того чтобы адекватно работать с webpack, стоит попробовать установить symfony/encore
, и написать класс из 3-4 методов, чтобы по имени файла находил его же в папке /build/ с помощью генерируемого при сборке manifest.json.
После этого вы привычным образом пишете "npm install {пакет}" и подключаете его, сборка encore соберет из него папку /build, у которой будут файлы так называемые entrypoints, по факту файлы page-home.js, page-product.js - их вы сами так назовете. В каждом из этих файлов будут работать ваши import/require и даже динамический импорт. Дальше в файлах шаблонов в блоке вы вызовите что-то вроде $encore->styles('page-index') и $encore->scripts('page-index') - их правда придется на пхп написать, но там строчек 20 кода.
И всё, на любой странице яваскрипт любой сложности просто берет и работает, как раньше, когда вы писали <script src>
Прикольно играться с Витей в конструктор, или плеваться от Микса, который "пытался но не смог", а можно взять энкор и забыть про этот ад.
Второй вопрос - что делать с докером.
Да, нужно Dockerfile написать где подменить CMD на ваш скрипт .sh который выполняет ваши команды, которые вы на локале пишете.
К сожалению, если вы хотите запускать это всё вместе с веб-сервером, то вам придется писать свой foreground скрипт, который не позволит контейнеру после запуска "отработать и закончится", а повиснет и будет ждать.
Были б вы в телеге, я б показал как.