@ArtiomK

Как обновить содержимое docker volume при обновление проекта и корректно ли прикреплять папки c файлами кода к volume?

У меня есть приложение Flask + Gunicorn, оно находится в контейнере docker. Есть Nginx, который тоже находится в отдельном контейнере. Требуется чтобы Nginx обслуживал статические файлы, в том числе файл js, которые находятся в папке static. Соотвественно для этого два контейнера должны иметь общий volume.

Когда я только создаю volume и запускаю контейнеры, никаких проблем нет, все актуальные файлы js попадают в volume. Однако если обновить образ контейнера и затем перезапустить, файлы js остаются без изменения.

Проблема не связана с Ngnix, так как пока не выбрал опцию обслуживания статических файлов, только обычные запросы.

Я сейчас решаю эту проблему так:

1. Останавливаю и удаляю контейнер, который использует volume docker rm -f
2. Удаляю volume docker volume rm flask_static_files_volume_name
3. Создаю volume заново
docker volume create  flask_static_files_volume_name

4. Запускаю контйенер docker run -v ... appname_container_image

После этих действий аткуальные файлы js появляются.

У меня есть мнение, что код проекта не должен попадать в volume и поведение docker в данном случае корретное, так как volume и нужны в том числе и для того, чтобы файлы не терялись/изменялись при перезапуске контейнера.

Делал это изначально не я, но меня попросили разобраться, почему js файлы не обновляются. Настройка была скорее всего сделана на базе вот этого туториал, где прикрепляют папку static к volume:
ссылка

Прошу поделиться мнением, прав ли я, что папки с js файлами проекта не должны быть volume.
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы