【发布时间】:2021-12-20 13:44:24
【问题描述】:
我尝试在我的 ddev web 容器上运行 webpack 开发服务器并将其连接到我的主机系统,这样我就可以在我的 web 浏览器中访问该 URL。但我只收到一个 502:无响应/损坏的 ddev 后端站点。
我想要什么:
- 用
ddev start启动我的ddev容器 - 如果我需要 webpack 开发服务器,我会通过
ddev ssh连接到 webcontainer 并启动 webpack 服务器 (npm run serve)。 - 最后我想在浏览器中访问 url (https://project.ddev.site.de:8081)。
我使用哪些版本:
- nodejs => 16
- webpack-dev-server => 4.3.1
- ddev => 1.18
我做了什么:
创建了一个新的 docker-compose 文件:
version: "3.6"
services:
web:
expose:
- 8080
environment:
- HTTP_EXPOSE=${DDEV_ROUTER_HTTP_PORT}:80,${DDEV_MAILHOG_PORT}:8025,8080:8080
- HTTPS_EXPOSE=${DDEV_ROUTER_HTTPS_PORT}:80,${DDEV_MAILHOG_HTTPS_PORT}:8025,8081:8080
这是我的 webpack.config.js 的一部分:
我用 mkcert 创建了两个 https 证书。
devServer: {
static: false,
// Avoid CORS concerns trying to load things like fonts from the dev server
headers: {
'Access-Control-Allow-Origin': '*',
},
hot: true,
liveReload: false,
compress: true,
client: {
webSocketURL: "auto://0.0.0.0:0/ws",
logging: 'info',
progress: true,
overlay: {
warnings: false,
errors: true,
},
},
magicHtml: false,
host: '0.0.0.0',
port: 8080,
http2: true,
https: options.devServer.https,
devMiddleware: {
index: false,
serverSideRender: true,
publicPath: publicPath,
writeToDisk: true,
},
//watchFiles: [path.join(options.entryPath, '**/*')],
}
非常感谢您的帮助。
【问题讨论】:
-
你能通过http URL(8080端口)访问吗?您不需要为 https 创建任何证书 - 使用 HTTPS_EXPOSE 时,ddev-router 会终止 SSL。
-
你试过stackoverflow.com/questions/64390344/…中的测试解决方案吗?
-
不,使用端口 8080 和通过 http 也无法访问。我的 docker compose 设置来自您共享的链接。但我不确定我必须为 webpack 采取哪些设置。我也尝试了 localhost 的 8080 端口。我必须设置一个特殊的 IP 吗?
-
您将使用
http://<projectname>.ddev.site:8080进行设置。那是你在做什么?我注意到您提到了https://project.ddev.site.de:8081,但我不知道project.ddev.site.de将如何解决。请先使用project.ddev.site,它会在 DNS 中解析。 -
我们有一个 TYPO3 安装并且想要做这样的事情来获取我们的 JS 代码:
https://project.ddev.site:8081/typo3conf/ext/distribution/Resources/Public/App/runtime.js。但无论是 http 还是 https,我都会得到502: Unresponsive/broken ddev back-end site如果我使用主机设置 webpack 服务器:“project.ddev.site”。我从 webpack 收到此错误:address not available 172.18.0.8:8080
标签: webpack webpack-dev-server ddev