如何在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"]
答案 0 :(得分:1)
我认为你不能(端口动态不是吗?)。
我认为您应该在应用中使用PORT
环境变量(即,您的应用必须绑定到容器内的该端口)。
假设您的应用程序将启动python http服务器,您的CMD应该是这样的:
CMD ["sh", "-c", "/usr/bin/python -m SimpleHTTPServer ${PORT}"]