在Docker容器之外看不到Dockerized Aurelia应用程序-不监听0.0.0.0

问题描述 投票:0回答:1

我正在标准节点docker容器内运行Aurelia应用,并且它正在侦听端口8080。在容器内,我已经测试了它是否正在使用curl运行;并以预期的HTML响应。但是我无法通过主机(容器外部)上的映射端口访问应用程序。

我正在运行以下命令来启动容器

$ docker run -it --rm -p 8080:8080 -v ${PWD}:/app node bash

然后在容器中,安装cli并创建一个新应用

# npm install -g aurelia-cli
# au new

创建默认应用程序后,我cd进入应用程序目录并运行该应用程序。

# au run

如上所述,我可以使用curl http://localhost:8080验证应用程序是否正在运行。但是,在主机上,我无法访问该应用程序:

$ curl http://localhost:8888
curl: (52) Empty reply from server

最初,我认为这是一个码头工人问题。参见this question。但是事实证明,Aurelia正在监听localhost而不是0.0.0.0

docker aurelia
1个回答
0
投票

[我在Aurelia的论坛上找到this Q&A,这很有帮助,但是aurelia_project/tasks/run.js没有他们讨论的opts变量。我确实发现了aurelia_project/aurelia.json,但是将localhost更改为0.0.0.0似乎没有什么不同。

最后我找到了webpack.config.js,然后将host对象内的devServer属性从localhost更改为0.0.0.0,一切正常。

webpack.config.js

module.exports = ({ production } = {}, {extractCss, analyze, tests, hmr, port, host } = {}) => ({
  ... lots of other json ...,
  devServer: {
    contentBase: outDir,
    // serve index.html for all 404 (required for push-state)
    historyApiFallback: true,
    hot: hmr || project.platform.hmr,
    port: port || project.platform.port,
    host: '0.0.0.0' || project.platform.host,
    compress: true,
    disableHostCheck: true
  },
  ... lots of other json ...,
});
© www.soinside.com 2019 - 2024. All rights reserved.