Я думаю, вам может понадобиться переосмыслить, зачем вам на самом деле нужна работа cron. Почему у вас есть старые файлы журнала внутри вашего контейнера? Один из лучших способов построения приложений внутри контейнеров - это регистрация всего в направлении stdout / stderr. Таким образом, вы сохраняете парадигму процесса «1 контейнер = 1», а управление журналами является обязанностью докера и / или вашего хоста.
Вы можете сделать это довольно просто:
- реконфигурирование вашего приложения для входа в / dev / stdout
- связывание файла журнала вашего приложения /var/log/nginx/access.log с / dev / stdout в вашем файле Docker
ln -sf /dev/stdout /var/log/nginx/access.log
ln -sf /dev/stderr /var/log/nginx/error.log
Если вам действительно нужно войти в какое-либо место внутри вашего контейнера, хорошей практикой может быть вход в общий раздел. Затем запустите задание cron, которое раскручивает контейнер, который также монтирует этот том и очищает журналы. Вы можете запланировать этот контейнер очистки с помощью задания cron.
Если вы используете какой-нибудь оркестратор, такой как Kubernetes, это будет сделано с модулем Scheduled, который делает именно это.