无法使用docker-compose和nodejs打开网站

时间:2017-04-19 13:04:35

标签: node.js docker-compose

大家。我有与nodejs组装的docker-compose。

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?

P.S .: 如果我安装npm install WITHOUT docker-compose命令。我没有这个问题

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

在您的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 :(得分:0)

在docker-compose.yml文件中更改 - “3030:3000”到 - “8000:8000”

答案 3 :(得分:0)

尝试添加以下标志:--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