首页 > 解决方案 > 运行 localhost 时无法获取 NodeJS 错误

问题描述

希望每个人都做得很好。我正在尝试将此应用程序转换为 docker,但出现无法 GET / NodeJS 错误这是我的 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, "0.0.0.0", () => {
  console.log(`Express web server started: http://0.0.0.0:${portNumber}`);
  console.log(`Serving content from /${sourceDir}/`);
});

这是我的码头文件

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .


CMD [ "node", "express.js" ]

帮助表示赞赏。

标签: node.jsdocker

解决方案


您的代码和 Dockerfile 是正确的,我认为您忘记公开 docker 端口。(码头工人文档

解决方案:

docker run -p <local-port>:<container-port> <image-name>
# docker run -p 3000:3000 image-name

推荐阅读