Разбор сервера Журналы в Docker? - PullRequest
0 голосов
/ 25 апреля 2018

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

Я привык к Heroku, где я мог просто использовать журналы heroku или подключать papertrial для просмотра журналов разбора, чтобы помочь в отладке, но я понятия не имею, как просмотреть журналы, связанные с анализом, когда он работает в док-контейнере.

Я могу выполнить тестовый скручивание и получить данные обратно, поэтому я знаю, как он работает, но не знаю, как найти данные журнала.

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

1 Ответ

0 голосов
/ 25 апреля 2018

Docker собирает журналы каждого контейнера из stdout и stderr контейнера. Как описано в 12-факторном приложении , приложение должно отправлять свои журналы на stdout (стандартизировано heroku):

Приложение с двенадцатью факторами никогда не занимается маршрутизацией или хранением своего выходного потока. Он не должен пытаться писать или управлять лог-файлами. Вместо этого каждый запущенный процесс записывает свой поток событий, без буферизации, в стандартный вывод. Во время локальной разработки разработчик будет просматривать этот поток на переднем плане своего терминала, чтобы наблюдать за поведением приложения.

При этом все, что вы передаете в stdout контейнера, будет храниться в каталоге /var/lib/docker/containers/<container id>/<container id>-json.log. Вы можете увидеть идентификатор контейнера с помощью команды docker ps. Вам не нужно видеть файл всегда. Вы можете сделать docker logs <container-id>, чтобы просмотреть журналы, хранящиеся в каталоге контейнера.

Если вам необходимо иметь журналы в файловой системе, вы можете хранить журналы внутри контейнера и монтировать этот каталог на вашем хост-компьютере, чтобы увидеть файлы журналов. Вы можете сделать что-то вроде этого:

docker run -v <host directory>:<log directory in container> ...

Надеюсь, это поможет.

...