【问题标题】:can't open site with docker-compose and nodejs无法使用 docker-compose 和 nodejs 打开站点
【发布时间】:2017-04-19 13:04:35
【问题描述】:

大家。我有 docker-compose 和 nodejs。

web:
...
  ports:
    - "3030:3000"
 ....

app.js:

    ...
server.listen(8000, function(){
   console.log('test');
});

我们可以看到端口是 8000。

我愿意docker-compose up 和终端有'测试'

http://MY_IP:8000 没有“无法访问网站”

我确实从docker-compose run web npm start 服务器启动,但我明白了 那个错误也是。

如何使用 docker-compose 启动 nodejs?

附: 如果我在没有 docker-compose 命令的情况下安装 npm install 。我没有这个问题

【问题讨论】:

    标签: node.js docker-compose


    【解决方案1】:

    在您的docker-compose.yml 中,您说要将端口3030 绑定到您的主机,并将3000 绑定到您的容器中。

    docker-compose.yml 中的配置应该是:

    web:
    ...
      ports:
        - "8000:8000"
    ...
    

    此外,我认为您还应该将容器内的应用程序绑定到 0.0.0.0 以简化开发,一旦投入生产,就可以进行额外的设置。 app.js:

    server.listen('8000', '0.0.0.0', function(){
      console.log('test');
    });
    

    【讨论】:

      【解决方案2】:

      您无法访问http://YOUR_IP:8000,因为您没有将容器端口 (8000) 绑定到主机端口 (8000)。将此添加到您的docker-compose.yml

      web:
      ...
        ports:
          - "3030:3000"
          - "8000:8000"
       ....
      

      【讨论】:

        【解决方案3】:

        只需在 docker-compose.yml 文件中将 -“3030:3000”更改为 -“8000:8000”

        【讨论】:

          【解决方案4】:

          尝试添加这个标志:--host=0.0.0.0

          version: '2'
          
          services:
            app:
              container_name: sdp
              build: .
              ports:
                - 8000:8000
                - 3000:3000
              volumes:
                - .:/usr/src/app
                - /usr/src/app/node_modules 
              command: sls offline --host=0.0.0.0
          

          【讨论】:

            猜你喜欢
            • 2021-01-04
            • 2017-11-16
            • 2020-03-06
            • 1970-01-01
            • 2020-08-16
            • 2020-06-04
            • 1970-01-01
            • 2012-08-14
            相关资源
            最近更新 更多