Docker - очистить содержимое файлов при запуске контейнеров - PullRequest
1 голос
/ 23 мая 2019

В моем контейнере Docker у меня есть несколько файлов журналов.

docker-compose-dev.yml
                     entrypoint.sh
                     web/
                        celery_logs/
                                   log1.log
                                   log2.log
                                   logn.log

Эти журналы складываются во время выполнения задач.

Есть ли способ или команда для очистки содержимого всехфайлы журналов каждый раз, когда я запускаю контейнер так?

docker-compose -f docker-compose-dev.yml up -d 

entrypoint.sh

#!/bin/sh

echo "Waiting for postgres..."

while ! nc -z web-db 5432; do
  sleep 0.1
done

echo "PostgreSQL started"

python manage.py run -h 0.0.0.0

Ответы [ 3 ]

0 голосов
/ 23 мая 2019

Вы можете принудительно воссоздать контейнеры:

docker-compose -f docker-compose-dev.yml up -d --force-recreate

Также вы можете записать журналы в консоль, и тогда Docker сможет обрабатывать журналы, используя свои собственные драйверы , который может настроить максимальный размер файлов журнала и т.д ...

0 голосов
/ 23 мая 2019

Вы можете попытаться сделать rm -rf внутри сценария точки входа -

#!/bin/sh

rm -rf celery_logs/*
echo "Waiting for postgres..."

Таким образом, все файлы журнала будут очищены при каждом запуске нового контейнера.При необходимости вы можете указать абсолютный путь.

0 голосов
/ 23 мая 2019

Файл Docker (Opcional)

Во-первых, если вам просто нужно увидеть меньше выходных данных, вы можете сделать так, чтобы докер показывал вам только самые последние строки:

docker logs --since 30s -f <container_name_or_id>

Или вы можете ограничить количество строк:

docker logs --tail 20 -f <container_name_or_id>

От: StackOverFlow # 41091634

Руководство

В этом случае это лучшее решение, вручную:

 rm -rf celery_logs/*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...