如何在 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/