对接 Hapi JS 时无法访问 Web 服务器

Unable to access the web server when dockerising the Hapi JS

我正在构建一个 Web 应用程序 Node JS Web 框架,Hapi JS,https://hapi.dev/。我正在尝试 docker 化我的应用程序。但它不起作用。

我首先为项目设置 npm 运行宁以下命令。

npm init

然后我安装了hapi js 运行宁以下命令。

@hapi/hapi

然后我用下面的代码创建了 server.js 文件。

'use strict';

const Hapi = require('@hapi/hapi');

const init = async () => {

    const server = Hapi.server({
        port: 4000,
        host: 'localhost'
    });

    server.route({
        method: 'GET',
        path: '/',
        handler: (request, h) => {

            return 'Hello World!';
        }
    });

    await server.start();
    console.log('Server running on %s', server.info.uri);
};

process.on('unhandledRejection', (err) => {

    console.log(err);
    process.exit(1);
});

init();

当我在终端中 运行 node server.js 并转到浏览器中的 localhost:4000 时,我可以看到 Hello World! 消息。

然后我开始docker开发应用程序。为此,我创建了包含以下内容的 Dockerfile。

FROM node:14-alpine
RUN apk update && apk upgrade
RUN apk add nodejs
RUN rm -rf /var/cache/apk/*
COPY . /
RUN cd /; npm install
EXPOSE 4000
CMD ["node", "/server.js"]

然后我用以下内容创建了 docker-compose.yaml 文件。

version: '3.8'

services:
  server:
    container_name: hapi-web-server
    build: .
    ports:
      - 4000:4000

然后我在终端中 运行 docker-compose up -d ,当我在浏览器中转到 localhost:4000 时,我看到以下错误。

我的代码有什么问题,我该如何解决?

更改主机值host: '0.0.0.0'