不能用docker-compose和nodejs打开网站
每一个人。 我有docker-与nodejs组成。
web: ... ports: - "3030:3000" ....
app.js:
... server.listen(8000, function(){ console.log('test'); });
我们可以看到端口是8000。
我做docker-compose up
和terminal有'testing'
但是http:// MY_IP:8000没有“无法访问网站”
我开始用docker-compose run web npm start
server started,但是我也得到了这个错误。
如何使用docker-compose启动nodejs?
PS:如果我安装npm install WITHOUT docker-compose命令。 我没有这个问题
在您docker-compose.yml
您要将端口3030
绑定到您的主机,并在您的容器中绑定3000
。
docker-compose.yml
的configuration应该是:
web: ... ports: - "8000:8000" ...
此外,我认为你也应该将容器内的应用程序绑定到0.0.0.0
以减轻开发,一旦移到生产就可以完成额外的设置。 app.js
:
server.listen('8000', '0.0.0.0', function(){ console.log('test'); });
您无法访问http:// YOUR_IP:8000,因为您没有将容器端口(8000)绑定到主机端口(8000)。 将此添加到您docker-compose.yml
。
web: ... ports: - "3030:3000" - "8000:8000" ....
只需在docker-compose.yml文件中将“3030:3000”更改为“8000:8000”即可