Они загружаются - их можно увидеть в панели разработчика в браузере, но к элементу по какой-то причине не применяются
Чудес не бывает. Если стили загружены и видны в браузере, и селектор совпадает с селектором элементов на странице, то будет работать. Проверяйте лучше. Ну и конечно же порядок выполнения посмотрите.
Во-первых оформите код специальным тегом, чтобы видно было форматирование.
Во-вторых RUN npm run dev заменить на CMD npm run dev и попробовать ещё раз.
Ну и в-третьих зачем COPY package*.json ./, если вы весь каталог прокидываете как volume?
В абсолютном непонимании того чем вы занимаетесь. РНР файл должен запускаться магией или всё таки интерпретатором? Ну и зачем РНР, если у вас есть Node.js?