【问题标题】:localhost didn’t send any data. ERR_EMPTY_RESPONSE nodejslocalhost 没有发送任何数据。 ERR_EMPTY_RESPONSE nodejs
【发布时间】:2022-03-02 14:01:15
【问题描述】:

我正在尝试将此应用程序转换为 docker,但出现此错误。

这是我的 express.js 文件

const express = require("express");
const app = express();
const portNumber = 3000;
const sourceDir = "dist";
const expressStaticGzip = require("express-static-gzip");
app.use(
  "/",
  expressStaticGzip(sourceDir, {
    enableBrotli: true,
    orderPreference: ["br", "gz"],
    setHeaders: function(res, path) {
      res.setHeader("Cache-Control", "public, max-age=31536000");
    }
  })
);

app.listen(portNumber, () => {
  console.log(`Express web server started: http://localhost:${portNumber}`);
  console.log(`Serving content from /${sourceDir}/`);
});

这是我的 dockerfile

FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "express.js" ]

感谢您的帮助。

【问题讨论】:

    标签: node.js docker


    【解决方案1】:

    这是一个非常常见的错误。当您在 docker 容器中广播时,您通常必须在主机 0.0.0.0 上收听,而不仅仅是 localhost。如果你监听localhost docker 将无法将来自容器外部的流量路由到容器内的环回接口。

    您可以通过更新您的快速代码以在 0.0.0.0 上收听来解决此问题。我相信是这样的:

    app.listen(portNumber, "0.0.0.0", () => {
      console.log(`Express web server started: http://0.0.0.0:${portNumber}`);
      console.log(`Serving content from /${sourceDir}/`);
    });
    

    然后,您需要使用以下内容运行 dockerfile:

    docker build -t node-app .
    docker run -p 3000:3000 node-app
    

    【讨论】:

    • 谢谢伙计。我试过了,但仍然是同样的问题
    • docker run --name node-appp -d -p 8080:8080 node-app
    • 试试docker run --name node-appp -d -p 3000:3000 node-app
    • 更新了我的答案以包含它。由于您使用了-d,您可能还需要先用docker kill node-app 停止它docker rm node-app
    • 我做到了,现在我收到了这个错误“Cannot GET /”
    【解决方案2】:

    我正在使用命令 ng serve 运行 Angular 应用程序并面临同样的问题。

    因为实时开发服务器默认监听http://localhost:4200

    比我使用命令 ng serve --host 0.0.0.0 运行 angular 项目并解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2020-11-27
      • 2020-09-19
      • 1970-01-01
      • 2019-11-06
      • 2020-09-19
      相关资源
      最近更新 更多