Используйте формат черного списка YAML или поместите отдельные слова в кавычки.
option1:
command:
- celery
- worker
- --queues=queue1,queue2
- ...
option2:
command: [celery, worker, '--queues=queue1,queue2', ...]
Вы также можете указать это в Dockerfile, который создает ваш образ. (В общем, я считаю, что лучше указывать CMD
в Dockerfile, если вы можете; для работников Celery, в частности, для вашего контейнера Celery обычно используется то же изображение, что и в вашем основном приложении Django / Flask, за исключением команды, так что для этого конкретного случая c вставка command:
в docker-compose.yml
имеет смысл.) Если вы сделаете это, Docker обернет пустую команду в sh -c
, поэтому вам не нужно специальное экранирование YAML, или если вы укажите отдельные слова в команде, это должен быть правильный массив JSON в кавычках.
CMD celery worker --queues=queue1,queue2 ...
CMD ["celery", "worker", "--queues=queue1,queue2", "..."]