我的Docker Flask应用程序多次加载图像。该页面的加载速度非常慢,因为它发出了几个相同的请求。我可以在Chrome Dev Tools Networks中看到它。该应用在我的开发环境中运行良好。我是Docker的新手。
我认为这与IP和端口设置有关。我已经尝试了每个IP /端口设置的几种配置,但收效甚微。我在任何地址都找不到我的应用程序,或者它可以运行,但是多次重新加载图像并且非常慢。
烧瓶:
from grocery import create_app
app = create_app()
if __name__ == '__main__':
app.run(host ='0.0.0.0', debug=False)
Dockerfile:
FROM python:3.6.8-slim
WORKDIR /app
COPY . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 80
ENV NAME Grocery
CMD ["python", "run.py"]
Docker命令:
docker build --tag=grocery .
# this is what has worked to get to the app running
docker run -p 5000:5000 --env-file .env grocery
然后在以下位置找到应用程序:
http://127.0.0.1:5000/
我希望该应用仅运行和加载一次图像。我在这里茫然。任何帮助将不胜感激。
编辑:html / css / js文件在我的本地计算机上。图像位于s3和CloudFront中。不确定是否会有所作为。
Edit2:添加更多代码,因为我能够找到问题。请参阅下面的答案。
@main.route('/cdn/<path:filename>')
def custom_static(filename):
return redirect(urljoin(os.environ['CLOUDFRONT_CDN_MAIN'], filename))
.env文件
CLOUDFRONT_CDN_MAIN="https://example.com"
答案 0 :(得分:0)
此问题是由于flask重定向和我的.env文件包含引号引起的。在pipenv shell中运行时,我的代码工作正常。在docker中运行时,返回重定向将引号添加到重定向中,并导致无限重定向循环。
我更改了:
CLOUDFRONT_CDN_MAIN="https://example.com"
收件人:
CLOUDFRONT_CDN_MAIN=https://example.com
,现在一切正常。