Журналы приложений на стандартный вывод с Shiny Server и Docker - PullRequest
1 голос
/ 09 апреля 2020

У меня есть контейнер Docker, на котором запущено блестящее приложение ( Dockerfile здесь ).

Журналы блестящего сервера выводятся в stdout, а журналы приложений записываются в /var/log/shiny-server. Я развертываю этот контейнер на AWS Fargate и в приложениях журналирования отображается только stdout, что делает отладку приложения сложной при развертывании. Я хотел бы записать журналы приложений в stdout.

Я испробовал ряд потенциальных решений:

  1. Я испробовал предоставленное решение здесь, но не повезло. . Я добавил exec xtail /var/log/shiny-server/ к своему shiny-server.sh в качестве последней строки в файле. Журналы приложений не записываются в stdout

  2. Я заметил, что запись журналов приложений в stdout теперь является поведением по умолчанию в rocker/shiny, но, как я Я использую rocker/verse:3.6.2 (обновлено с 3.6.0 сегодня ) вместе с RUN export ADD=shiny, я не думаю, что это стандартное поведение для контейнера rocker/verse:3.6.2 с надстройкой Shiny. В результате я не получаю стандартное поведение из коробки.

  3. Эта проблема на github предлагает альтернативный метод принудительного входа приложения в журнал на stdout с помощью переменной окружения SHINY_LOG_STDERR=1, установленной во время выполнения, но я не достаточно Linux сообразителен, чтобы знать, где эта переменная env должна быть установлена, чтобы быть эффективной. Я нашел эту документацию от Shiny Server v1.5.13 , в которой были предложены какие файлы для установки переменной среды в зависимости от Linux distro; однако вывод из моего контейнера при запуске cat /etc/os-release:

enter image description here

, который на самом деле не совпадает с любой из дистрибутивов в документации Shiny Server, что делает документацию бесполезной.

Я попытался добавить добавление переменной окружения из вышеприведенной проблемы github в команду docker run, то есть

docker run --rm -e SHINY_LOG_STDERR=1 -p 3838:3838 [my image]

, а также

    docker run --rm -e APPLICATION_LOGS_TO_STDOUT=true -p 3838:3838 [my image]

и я все еще не получаю журналы на stdout.

Я должен что-то здесь упустить. Может кто-нибудь помочь мне определить, как успешно получать журналы приложений на stdout успешно?

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