Укажите файл журнала для контейнера докера - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть этот набор сервисов, для которых я хочу выполнить регистрацию.Некоторые службы работают с приложением узла, поэтому выходные данные видны непосредственно в команде docker logs.
Однако пара отличается.Давайте использовать мое приложение Java в качестве примера.Он работает в оболочке, но запись ведется в файл журнала вместо STDOUT.

Как я могу перехватить файл как вывод docker logs?

ps.Другое приложение представляет собой приложение PHP на сервере Nginx, также с собственным файлом регистрации.

-UPDATE
Приложение представляет собой приложение Java (файл .jar), работающее в Java Service Wrapper от Tanuki.Встроенный JAR имеет регистратор Log4j, пишущий через DailyRollingFileAppender в logs/server.log.Сам Wrapper имеет вывод, который я игнорирую через >/dev/null 2>&1.Я просто добавил следующую строку в Dockerfile.

RUN ln -sf /dev/stdout /opt/myserver/logs/server.log

Это не работает, хотя.При использовании docker-compose up myserver

вывод не отправляется

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Я нашел это.Очевидно, вы можете записывать логи из докер-контейнеров через

RUN ln -sf /proc/1/fd/1 /opt/myserver/logs/server.log

в вашем Dockerfile

0 голосов
/ 21 февраля 2019

Свяжите файлы журнала с stdout/stderr.Например, в вашем Dockerfile:

RUN ln -sf /dev/stdout /<path>/logfile.log \
    && ln -sf /dev/stderr /<path>/errors-logfile.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...