Comments 5
При открытии тяжелых отчетов система может долго думать (секунд 5-15) пока запускается докер
Т. е. ShinyProxy на каждое открытие отчета запускает новый контейнер?
Исходник главного докера
(Почти) все RUN
можно (и нужно!) собрать в один, соединив команды &&
— уменьшите количество слоёв и время запуска.
Да, так и стараемся делать помещая однотипные команды в один докер, просто по началу когда все тестировали и делали прототип системы на это не обращали внимание. А когда слоев стало чет слишком много тогда все однотипное в один докер и поместили.
а потом его прибивает
Думаю, надо покрутить heartbeat-rate
, heartbeat-timeout
, container-wait-time
.
Ну или мы его принудительно прибьем
Не пробовали добавлять в образы HEALTHCHECK
?
А когда слоев стало чет слишком много
Ну вот я и говорю, что нужно все команды, связанные с установкой пакетов и прочей ересью схлопнуть в один слой: Best practices for writing Dockerfiles
У некоторых пользователей при первом открытии отчета, иногда по неведомой причине, система может выдавать ошибку о том, что адрес не отвечает, т.к. докер контейнер не успел загрузиться, что конечного пользователя вводит в заблуждение. При повторном открытии отчета данная проблема пропадает.
Если все дочерние отчёты открываются из главного shiny приложения, то что бы такой ошибки не возникало можно прикрутить пакет future с асинхронным выполнением кода, который бы давал команду на запуск контейра и уже переносил пользователя по гиперссылке (или как вы это организуете), как только контейнер будет доступен.
Опыт внедрения Shiny в качестве корпоративной отчетности