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 и т.д...), дайте мне знать об этом

Заранее всем спасибо 😁 !!!

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