首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Docker环境中使用Heroku CLI

无法在Docker环境中使用Heroku CLI
EN

Stack Overflow用户
提问于 2019-04-15 19:22:03
回答 2查看 87关注 0票数 0

在开发一个使用Heroku CLI进行部署的Ruby应用程序时,我偶然发现了一个问题,试图将整个事情集成到Docker Compose工作流和微服务架构中。

长话短说,我正在运行一个运行命令的容器:heroku local:start -p 5000 (启动本地Heroku服务器并公开端口5000,以便可以在http://localhost:5000上访问Heroku应用程序)。

我将容器的5000端口绑定到主机上的5000端口。当我在主机上访问http://localhost:5000时,我无法访问Heroku应用程序。如果我在非Docker环境中运行该命令,同样的效果也很好。

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

要重现这个问题,只需签出此提交并运行docker-compose uphttps://github.com/Dzhuneyt/12factor/commit/5bdfc417ce57eb916c42fdc76bae51e4df30549c

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-15 21:55:54

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

代码语言:javascript
复制
# Procfile
web: bundle exec ruby web.rb -p $PORT -o 0.0.0.0

此外,为了方便起见,为了避免在每个调试周期进行重新构建,我将添加一个卷挂载:

代码语言:javascript
复制
# docker-compose.yml
version: '3'

services:
  web:
    build: ./
    volumes:
      - .:/usr/src/app
    ports:
      - "5000:5000"
票数 1
EN

Stack Overflow用户

发布于 2019-04-15 21:56:07

只是为了检查一下基础知识;一旦你启动服务并等待几秒钟,'docker ps‘会显示服务正在运行吗?如果没有,'docker logs {service_name}‘是否提供任何输出?听起来您的网络/端口配置是正确的;这就是我关注服务输出的原因。但是,如果服务正在运行,您能否'telnet localhost 5000‘并接收一个成功的连接?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55688102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档