大家。我有与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命令。我没有这个问题
答案 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