Тему не так давно обсуждали. Крон в докере живет очень плохо. Контейнеры созданы, чтобы каждая задача сама выполнялась постоянно, без пинков со стороны.
Никто не запускает контейнеры по одному, у всех или k8s, или стек. Берем пачку виртуалок, и на них разворачиваемся.
А логи собираем все вместе. Но с кроном логи процессов в лог сервиса не попадают.
Можно сделать общий сторонний лог-сервер, но морочно. Можно докер-в-докере - чуть менее морочно, но с непривычки пугает.
Логи в монтированные папки делать нельзя - middleware должен быть stateless by design. Реально удобно, когда сервис можно в любой момент выключить без последствий, и стартовать сколько угодно новых, а кто-то сам за меня делает discovery. А собирать логи, разбросанные по серверам, будет сложно.
Можно написать маленький менеджер, который живет в своем контейнере, запускает задачу по расписанию и отправляет логи в stdout, чтобы они не пропали. В принципе, тут час работы, включая заварить чай и выпить когда остынет. Но это ж надо от привычки отказаться.