如何在Dockerfile中公开来自Heroku的动态$ PORT?

时间:2017-02-10 15:19:21

标签: 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"]

1 个答案:

答案 0 :(得分:1)

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

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

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

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