gpt4 book ai didi

docker - 将 Docker 镜像部署到 Heroku 时出现 R10 错误

转载 作者:行者123 更新时间:2023-12-02 20:57:42 25 4
gpt4 key购买 nike

在尝试将包含一个简单流式应用程序的 Docker 镜像部署到 Heroku 时,我遇到了一些初期问题。我的问题是部署后我无法访问我的 Docker。仔细一看,我发现了以下错误:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch



我研究并理解这是因为端口不可用,因为 Heroku 会动态分配端口号。

我通过将以下内容放在我的 Dockerfile 中确保不会发生这种情况。

Dockerfile:
FROM python:3.7
COPY . /app
WORKDIR /app
RUN pip install streamlit
ENTRYPOINT ["streamlit","run", "--server.enableCORS", "false" ,"--server.port", "$PORT"]
CMD ["app.py"]

我现在可以看到网络 URL 和外部 URL 端口号是由 Heroku 分配的,因为它不是典型的 5901 号。

然而,令我困惑的是,为什么容器无法绑定(bind)到给定的动态端口号?我认为该应用程序将使用给定的动态数字?

最佳答案

问题是 $PORT在 Heroku Docker Registry 上执行 Docker 运行时,不会被相应的环境变量替换。

另一种方法是创建一个调用 .sh 脚本的 Docker 文件

FROM python:3.7 
COPY . /app
WORKDIR /app
RUN pip install streamlit


ENTRYPOINT "/startup.sh"

和startup.sh
echo PORT $PORT
streamlit run --server.enableCORS false --server.port $PORT app.py

关于docker - 将 Docker 镜像部署到 Heroku 时出现 R10 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62091936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com