Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Docker容器中使用Webpack dev server的服务人员_Javascript_Docker_Webpack_Service Worker_Webpack Dev Server - Fatal编程技术网

Javascript 在Docker容器中使用Webpack dev server的服务人员

Javascript 在Docker容器中使用Webpack dev server的服务人员,javascript,docker,webpack,service-worker,webpack-dev-server,Javascript,Docker,Webpack,Service Worker,Webpack Dev Server,我正在尝试使用Webpack和Docker在web应用程序中使用服务人员 我目前所做的一切都很好(服务人员、网页包配置、工作人员注册…) 实际上,我的应用程序是在Docker容器中运行的,在这个容器中,我可以启动我的webpack构建来创建我的所有JS文件 但现在我希望能够与我的服务人员一起使用WebpackDevServer和HMR 为此,我在manifest.json 然后,当我通过web浏览器访问我的应用程序时,除了我的工作者之外,所有构建的资源都会被找到 我在docker容器中使用(我使

我正在尝试使用Webpack和Docker在web应用程序中使用服务人员

我目前所做的一切都很好(服务人员、网页包配置、工作人员注册…)

实际上,我的应用程序是在Docker容器中运行的,在这个容器中,我可以启动我的webpack构建来创建我的所有JS文件

但现在我希望能够与我的服务人员一起使用WebpackDevServer和HMR

为此,我在
manifest.json

然后,当我通过web浏览器访问我的应用程序时,除了我的工作者之外,所有构建的资源都会被找到

我在docker容器中使用(我使用)运行我的开发服务器

encore dev-server --hot --host 0.0.0.0 --port 8080
要加载我的资产,浏览器会在
0.0.0:8080
上请求它们,但我的工作程序是从
localhost:8000
注册的,因此请求失败,出现404错误,因为工作程序位于
0.0.0.0:8080/sw.js
而不是
localhost:8080/sw.js

我知道这是否可以修复此行为,并使我的服务人员在docker容器上的webpack dev服务器中工作

我知道服务人员只监听他们的范围,在我的例子中是
localhost:8000/*
,但webpack dev服务器是
0.0.0:8080

这就是为什么我会问,是否有可能改变这种行为,使其工作,如果有人已经有这个问题


谢谢

您需要从Docker容器中暴露端口8000以及端口8080。对于不同端口上的多个web服务,必须从Docker容器中公开多个端口

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

这在我的情况下不起作用,因为我有另一个容器(呈现我的网站的容器)已经公开了
8000
端口。您是否尝试使用
docker run-p 8001:8000
映射到其他端口?