В Dockerfile у CMD используем shell форму.
Это значит что PID 1 у процесса шела и сигнал на остановку не передаётся django или celery приложениям и значит при шатной остановке не закрывают соединения (c бд, rabbit, etc).
Отказаться легко не можем:
- В командах заменяем переменные параметрами — для этого нужен shell
- Для web контейнера запускаем несколько команд последовательно