我正在尝试使用Webpack和Docker在Web应用程序内部使用服务人员。
我目前所做的一切都工作正常(服务人员,webpack配置,人员注册...)
实际上我的应用程序在Docker容器中运行,在这个容器中,我可以启动Webpack构建来创建我的所有JS文件。
但是现在我希望能够与服务工作者一起使用webpack开发服务器和HMR。
为此,我使用https://github.com/oliviertassinari/serviceworker-webpack-plugin正确地引用了manifest.json
内部的服务工作者的引用
然后,当我通过Web浏览器访问我的应用程序时,除我的工作人员外,所有已建资产都被发现。
我在Docker容器中使用(我使用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
而不是{{1} }。
我想知道是否有可能解决此问题并使我的服务工作者在docker容器上的webpack-dev-server内部工作。
我知道服务人员仅在听其范围,在我的情况下为localhost:8080/sw.js
,但webpack-dev-server是localhost:8000/*
。
这就是为什么我问是否可以更改此行为以使其正常工作,以及是否有人已经存在此问题的原因。
谢谢
答案 0 :(得分:0)
您需要公开Docker容器中的端口8000和端口8080。您必须公开Docker容器中的多个端口,以便在不同端口上使用多个Web服务。
docker run -p 8080:8080 -p 8000:8000