R10将Docker映像部署到Heroku时出错
我在尝试将我的Docker映像(其中包含一个简单的Streamlight应用程序)部署到Heroku时遇到了一些初期问题。我的问题是部署后无法访问Docker。仔细看,我发现了以下错误: 错误R10(启动超时)->Web进程在启动后60秒内绑定到$PORT失败 我已经研究并了解到这是因为端口不可用,因为Heroku将动态分配端口号 我把下面的文档放在我的Dockerfile中,以确保这不会发生 Dockerfile: 我现在可以看到网络URL和外部URL端口号是由Heroku分配的,因为它不是典型的5901号R10将Docker映像部署到Heroku时出错,docker,heroku,Docker,Heroku,我在尝试将我的Docker映像(其中包含一个简单的Streamlight应用程序)部署到Heroku时遇到了一些初期问题。我的问题是部署后无法访问Docker。仔细看,我发现了以下错误: 错误R10(启动超时)->Web进程在启动后60秒内绑定到$PORT失败 我已经研究并了解到这是因为端口不可用,因为Heroku将动态分配端口号 我把下面的文档放在我的Dockerfile中,以确保这不会发生 Dockerfile: 我现在可以看到网络URL和外部URL端口号是由Heroku分配的,因为它不是典
然而,让我困惑的是,为什么容器无法绑定到给定的动态端口号?我以为应用程序会使用给定的动态数字 问题是在Heroku Docker注册表上执行Docker运行时,
$PORT
没有被相应的环境变量替换
另一种方法是创建一个调用.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
问题是在Heroku Docker注册表上执行Docker运行时,
$PORT
没有被相应的环境变量替换
另一种方法是创建一个调用.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
测试的解决方案在没有ENTRYPOINTUSER的情况下工作,因为它不存在于dockerfile中。测试的解决方案在没有ENTRYPOINTUSER的情况下工作,因为它不存在于dockerfile中。