Docker Flask应用程序多次加载图像

时间:2019-06-16 19:24:39

标签: python-3.x docker flask

我的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"

1 个答案:

答案 0 :(得分:0)

此问题是由于flask重定向和我的.env文件包含引号引起的。在pipenv shell中运行时,我的代码工作正常。在docker中运行时,返回重定向将引号添加到重定向中,并导致无限重定向循环。

我更改了:

CLOUDFRONT_CDN_MAIN="https://example.com"

收件人:

CLOUDFRONT_CDN_MAIN=https://example.com

,现在一切正常。