我有一个处理数据的Python应用程序,我正在Docker中运行它。在本地,它运行得很好。当我第一次尝试在AWS App Runner上运行时,我需要进行健康检查,所以我在Dockerfile中暴露了80端口,并安装了监听该端口的nginx。当我在本地运行container时,我可以访问nginx主页。也可以使用curl。下面是我的Dockerfile。
FROM python:3.9
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN apt update && apt install nginx -y
COPY default /etc/nginx/sites-available/default
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 80/tcp
COPY start.sh /start.sh
RUN chmod +x /start.sh
CMD ["/bin/bash", "/start.sh"]type here
我试图在AWS应用程序运行器中设置健康检查。我正在端口80上使用TCP检查。由于某些原因,它一直失败。
下面是AWS App Runner的设置:来源:专用ECR部署设置:手动端口:80自动缩放:默认运行状况检查:TCP(我尝试了各种设置都没有成功)安全:使用AWS拥有的密钥(无示例角色)网络:公共访问
你能给我一些建议吗?可能是什么问题?谢谢你提前!
1条答案
按热度按时间5q4ezhmt1#
通常,健康检查被配置到应用程序运行的同一个端口,不清楚它是否是端口80。
您能否检查应用程序是否在AWS中显示任何错误或是否已正确启动?
在未配置运行状况检查时,是否可以直接访问应用程序?
我的假设是应用程序本身有问题,而不是健康检查。