Браузерные приложения немного ортогональны системе контейнеров Docker. В типичном производственном использовании вы бы использовали инструмент типа Webpack , чтобы скомпилировать ваше приложение в статические файлы. Тогда ничто локально на самом деле не запускает код вашего приложения; вместо этого HTTP-сервер, такой как Nginx, будет предоставлять скомпилированные артефакты браузерам, не зная, что они собой представляют.
Если Docker вообще входит в картинку, вы можете смонтировать каталог, например dist
, который содержит скомпилированные артефакты в простой контейнер веб-сервера:
npm install
npm run build
sudo docker run -v $PWD/dist:/usr/share/nginx/html -p 8080:80 nginx
Поскольку скомпилированный код выполняется в браузере, а не в Docker, он не может использовать преимущества таких вещей, как межконтейнерная DNS (браузер не знает, существует ли Docker, и ему приходится общаться с внешне видимыми именами хостов). И поскольку в конечном итоге вы создаете автономный скомпилированный артефакт, вы не получаете никакой выгоды от запуска набора инструментов в Docker. Во время разработки я просто npm run start
на хосте и вообще не задействовал Docker.