docker - составить: как продолжать показывать логи в режиме «следуй», даже когда контейнер не работает? - PullRequest
2 голосов
/ 15 февраля 2020

Если вы запустите docker-compose logs -f service в одном терминале и попытаетесь перезапустить service в другом, регистрация будет остановлена, и вам нужно будет снова запустить dkc logs. Как сохранить dkc logs в работе?

Единственное решение, которое я нашел до сих пор, это запустить дополнительную службу n oop, которая не позволит dkc logs завершить работу. Если это единственное решение, то есть ли у вас какие-либо предложения для простейшего noop сервиса, который уже существует на docker хабе?

Мой обходной путь:

  1. добавить новый noop служба для docker-compose.override.yml (я выбрал redis, потому что он уже установлен и довольно легкий):
services: 
  noop: 
    image: redis:5-alpine
запустить docker-compose logs -f service noop вместо просто service. пробег docker-compose stop/restart service. logs процесс будет поддерживаться сервисом noop.

Con:

  • дополнительные функции для запуска
  • не могут использовать dkc stop и dkc restart без указания услуги

1 Ответ

1 голос
/ 15 февраля 2020

Может быть, некоторая информация о том, что вы входите. Например, для контейнеров nginx или php мы просто перемещаем файлы журналов за пределы контейнера, просто используя том для их монтирования на хост-машину, а затем анализируем их по своему усмотрению.

    volumes:
      - /var/log/mysql/error_service_xy.log:/var/log/mysql/error.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...