My Docker Flask App загружает изображения несколько раз. Страница загружается очень медленно, потому что она делает несколько одинаковых запросов. Я вижу это в Chrome Dev Tools Networks. Приложение отлично работает в моей среде разработки. Я очень новичок в Докере.
Я думаю, что это связано с настройками 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 file
CLOUDFRONT_CDN_MAIN="https://example.com"