Docker / Celery / Django : Запустите задачу с `celery` в контейнере, в то время как мой `django` сервер работает в другом контейнере. Это возможно?
Я работаю над проектом, в котором используется Django
, я новичок в Django
и Docker
.
Для одной из функций я решил создать задачу с Celery
(функция заключается в создании matchmaking queue
)
Но я использую Docker для запуска своего приложения, и у меня есть 3 контейнера: один для фронтенда (node
), второй для Django
и последний для моей базы данных PostgreSQL
.
И я не очень понимаю, нужно ли создавать еще один контейнер для Celery
. Я ничего не нашел в своих исследованиях о подобной вещи, но (если я ничего не напутал) теоретически, можно и даже очень хорошо создать контейнер для Celery
, это логично.
Итак, я попытался запустить свой celery task
в фоновом режиме, а затем запустить свой Django
сервер вот так в том же контейнере :
$ celery -A backend worker -l INFO --detach
$ daphne -p 8000 backend.asgi:application
ДВЕ ПРОБЛЕМЫ : Мы теряем весь смысл использования Docker, делая это, и мы не можем видеть журналы celery
.
Проблема : это "нормально" делать так, или действительно лучше создать другой контейнер для Celery
или только для моего task
? Если да, то как я могу это сделать? Я понятия не имею, как я могу это сделать и что является хорошим вариантом.
Я обращаюсь к вам за помощью, пожалуйста! Если необходимо добавить больше контекста (мой Dockerfiles
, docker-compose.yml
и т.д...), дайте мне знать об этом
Заранее всем спасибо 😁 !!!