heroku - 如何在 Dockerfile 中从 Heroku 公开动态 $PORT?

标签 heroku docker dockerfile

如何在 Dockerfile 中从 Heroku 公开动态 $PORT?
我用 heroku container:push web --app=... 推送我的 docker 容器对 Heroku 来说,这行得通。

在 Heroku 日志中,我读到了这个:heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch ,我将其解释为我的 Dockerfile 中的端口无法通过 Heroku 公开。

找不到关于此的文档。如何将我的 Docker 端口暴露给 Heroku 端口?

这是我的 Dockerfile:

FROM alpine:3.3

ADD binary_file .

EXPOSE 37780

CMD ["./binary_file"]

最佳答案

我认为您不能(端口不是动态的吗?)。

我认为您应该使用 PORT应用程序中的环境变量(即,您的应用程序必须绑定(bind)到容器内的该端口)。

假设您的应用程序将启动 python http 服务器,您的 CMD 应该是这样的:

CMD ["sh", "-c", "/usr/bin/python -m SimpleHTTPServer ${PORT}"]

关于heroku - 如何在 Dockerfile 中从 Heroku 公开动态 $PORT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162833/

相关文章:

docker - 当 `docker exec`命令在已经运行的容器上运行时,是否可以设置默认命令?

docker - Kubernetes - 私有(private)存储库部署问题

ruby-on-rails - Docker Compose for Rails

java - 无法运行docker镜像

python - Heroku 上 Django 中的编码错误

docker - spring boot mvc docker Whitelabel错误

docker - 访问 Dockerfile 中的 container_name(来自 docker-compose)

ruby-on-rails - Heroku + Rack 重写

node.js - 将 Node js 应用程序部署到 Heroku

ruby-on-rails - 如何解决 Heroku 上未初始化常量 Rake::DSL 问题?