место и нужно раз-два в день чистить логи за ним.
Мое решение+gpt:
1) У compose прописать
image: <image>
environment:
- LOG_PATH=/var/lib/docker/containers/$$CONTAINER_ID/$$CONTAINER_ID-json.log
2) в rsyslog прописать:
LOG_PATH {
daily
rotate 7
}
Сработает ли так?
Контейнер каждый раз будет обновляться по этому записано в переменную
У докера давно уже в его конфиге можно задать параметры ротации его логов, да и при запуске отдельного контейнера. Раньше да, надо было логротэйтом ротировать логи контейнеров
logging .. типФайла размерФайла кол-во файлов? Ротируются - удаляются получается самые давние удаляет?
а на каком уровне? в ~/.docker/config или в /etc/docker/daemon.json?
ага, так и запишем. т.е. опции можно задать сервису в /etc и контейнерам юзера через конфиг в домашней папке юзера, верно?
Про конфиг юзера надо проверять/читать доку, да и вообще документация полезна, она и меняется постоянно, как и версии докера
В etc дефолтный общий, в ключах запуска можно переопределить, как задать отправку логов во внешнюю систему
Посмотрел, logrotate же архивирует логи, а мне надо что удалял
И в общем конфиге можно дефолт отправку во вне можно
logrotate сейчас не нужен, этот функционал есть в докере давно
Но принцип старое по архивам, новое в обрезанном файле, и старые архивы удалить, оставив заданное количество файлов
На всякий случай уточню - что я про этот вариант: "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" Пока не нашел информации об удалении, в документации просто описывается - для избежания истощения диска
max-files: 3 это и есть 3 файла, остальные удалять
В данном случае 30 метров логов на контейнер будет. Но, возможно, лучше вариант по времени ротировать, а не по размеру
По времени не могу найти. Везде вес
По времени нужно logrotate использовать
https://docs.docker.com/config/containers/logging/json-file/ Про пользовательский конфиг не написано, но можно бы и попробовать )
Обсуждают сегодня