Как я могу развернуть код в продакшн, если я запускаю celery, redis, django с помощью docker compose?

Я запускаю контейнеры celery, Redis, Django и flower с помощью docker compose. Файл docker-compose.yml похож на этот учебник. Все приложение может работать очень хорошо.

Проблема возникает, когда я изменяю код и развертываю его на производстве. Я обнаружил, что код часто не обновляется, что приводит к ошибкам. Например, я пытаюсь изменить код задачи celery или добавить новые задачи. Обновленные задачи не могут быть развернуты

После перезапуска рабочих, я попытался выполнить команды:

celery multi start 1 -A proj -l INFO -c4 --pidfile=/var/run/celery/%n.pid
celery multi restart 1 --pidfile=/var/run/celery/%n.pid

kill -HUP $pid

Но задача не обновляется после моего тестирования. Задача по-прежнему загружает старый код. Как я могу развернуть код в продакшн? Нужно ли перезапустить контейнер?

docker-compose restart celery

В документах по celery говорится, что: Для производственных развертываний вы должны использовать init-скрипты или систему наблюдения за процессами (см. Daemonization).

Daemonization совершенно не связана с docker. Я не понимаю, как Daemonization связана с развертыванием с помощью docker / docker compose. На самом деле я не понимаю, почему Daemonization связана с развертыванием из официальной документации.

Вернуться на верх