无法从主机访问Dockerized Loopback 4应用程序

时间:2018-12-13 10:21:29

标签: node.js docker loopback

有没有人成功地对Loopback-4(lb4)应用进行docker化? 我设置了一个基于lb4的应用程序,并试图对其进行docker化,但是尽管Docker似乎正在运行该应用程序,但它并未显示在本地主机上。

我执行的步骤:

  1. 在本地设置基于Loopback 4的应用程序
  2. 创建Dockerfile(代码here
  3. (cd进入Dockerfile所在的目录)构建:docker build -t lb4。
  4. 运行:docker run -p 3000:3000 lb4

但是,该应用程序未显示在http://localhost:3000上 运行容器的输出:

  

trip@1.0.0预启动/ usr / src / app    npm运行构建

     

trip@1.0.0构建/ usr / src / app   lb-tsc es2017 --outDir dist

     

trip@1.0.0开始/ usr / src / app   节点。

     

服务器在http://127.0.0.1:3000上运行   尝试http://127.0.0.1:3000/ping


编辑

为了保留问题,将回购中的相关代码(第2步)粘贴到此处,

// index.js
const application = require('./dist');
module.exports = application;
if (require.main === module) {
  // Run the application
  const config = {
    rest: {
      port: +process.env.PORT || 3000,
      host: process.env.HOST || 'localhost',
      openApiSpec: {
        // useful when used with OASGraph to locate your application
        setServersFromRequest: true,
      },
    },
  };
  application.main(config).catch(err => {
    console.error('Cannot start the application.', err);
    process.exit(1);
  });
}

1 个答案:

答案 0 :(得分:4)

如@Henry在评论中所建议,在您的index.js中,更改为使用

  host: '0.0.0.0',

要详细了解localhost(127.0.0.1)和0.0.0.0之间的区别,请参阅https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0

PS

最好在构建阶段使用npm run build,以便在运行时更快地启动。