Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Docker环境中使用Heroku CLI_Docker_Heroku - Fatal编程技术网

无法在Docker环境中使用Heroku CLI

无法在Docker环境中使用Heroku CLI,docker,heroku,Docker,Heroku,在开发一个使用Heroku CLI进行部署的Ruby应用程序时,我遇到了一个问题,即试图将整个应用程序集成到Docker Compose工作流和微服务体系结构中 长话短说,我正在运行一个容器,该容器运行命令:heroku local:start-p5000启动一个本地heroku服务器并公开端口5000,因此可以在以下位置访问heroku应用程序 我将容器的端口5000绑定到主机上的端口5000。当我在主机上访问时,我无法访问Heroku应用程序。如果我在非Docker环境中运行该命令,同样的事

在开发一个使用Heroku CLI进行部署的Ruby应用程序时,我遇到了一个问题,即试图将整个应用程序集成到Docker Compose工作流和微服务体系结构中

长话短说,我正在运行一个容器,该容器运行命令:heroku local:start-p5000启动一个本地heroku服务器并公开端口5000,因此可以在以下位置访问heroku应用程序

我将容器的端口5000绑定到主机上的端口5000。当我在主机上访问时,我无法访问Heroku应用程序。如果我在非Docker环境中运行该命令,同样的事情也可以完美地工作

我对Docker和端口转发非常有经验,因此我几乎可以肯定问题不在于撰写文件或端口如何转发。问题似乎与Heroku CLI有关,以及它如何将端口暴露给运行它的环境


要重现此问题,只需签出此提交并运行docker compose up:

我相信如果您绑定到0.0.0.0,这将起作用

另外,为了方便起见,为了避免在每个调试周期中重建,我将添加一个卷装载:

# docker-compose.yml
version: '3'

services:
  web:
    build: ./
    volumes:
      - .:/usr/src/app
    ports:
      - "5000:5000"

只是检查一下基本情况;启动服务并等待几秒钟后,“docker ps”是否显示服务正在运行?如果没有,docker logs{service_name}是否提供任何输出?听起来您的网络/端口配置是正确的;这就是我关注服务输出的原因。但是,如果服务正在运行,您能否“telnet localhost 5000”并接收到成功的连接

# docker-compose.yml
version: '3'

services:
  web:
    build: ./
    volumes:
      - .:/usr/src/app
    ports:
      - "5000:5000"