Использовать сервисных работников с dev-сервером Webpack внутри контейнера Docker - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь использовать сервисных работников внутри веб-приложения, использующего Webpack и Docker.

Все, что я сделал на данный момент, работает хорошо (сервисный работник, конфигурация webpack, регистрация рабочего ...)

На самом деле мое приложение работает внутри контейнера Docker, в этом контейнере я могу запустить сборку веб-пакета для создания всех моих файлов JS.

Но теперь я бы хотел использовать dev-сервер веб-пакетаи HMR с моим сервисным работником.

Для этого я использовал https://github.com/oliviertassinari/serviceworker-webpack-plugin, который правильно сослался на моего сервисного работника внутри manifest.json

Затем, когда я получил доступ через мойвеб-браузер для моего приложения, все встроенные ресурсы найдены, кроме моего работника.

Я запускаю свой dev-сервер, используя (я использую webpack-encore ), внутри моего док-контейнера

encore dev-server --hot --host 0.0.0.0 --port 8080

Чтобы загрузить мои ресурсы, браузер запрашивает их на 0.0.0.0:8080, но мой работник зарегистрирован с localhost:8000, поэтому запрос завершается с ошибкой 404, потому что работник расположен 0.0.0.0:8080/sw.js вместо localhost:8080/sw.js.

я бы зналТеперь, если это было возможно, чтобы исправить это поведение и заставить моего сервисного работника работать внутри webpack-dev-server на контейнере Docker.

Я знаю, что сервисные работники слушают только свою область, в моем случае localhost:8000/*, ноwebpack-dev-server: 0.0.0.0:8080.

Вот почему я спрашиваю, возможно ли изменить это поведение, чтобы оно работало, и если у кого-то уже была эта проблема.

Спасибо

1 Ответ

0 голосов
/ 28 мая 2019

Вам необходимо предоставить порт 8000 из контейнера Docker, а также порт 8080. Вы должны предоставить несколько портов из контейнера Docker для нескольких веб-служб на разных портах.

docker run -p 8080:8080 -p 8000:8000

Официальная документация

...