Запуск Shinyapp в Docker без сервера Shiny - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь запустить приложение Shiny в Docker и вижу два способа сделать это:

1) Запустить сервер Shiny в Docker, а затем запустить приложение Shiny на этом сервере.Это работает, но я все еще пытаюсь сделать видимым каталог пользователя из приложения Shiny (простое монтирование с параметром -v не помогло).

2) Запустите Shiny непосредственно в Docker с помощью команды R -e "shiny::runApp('/srv/shiny-server/')".В этом случае это почти работает, но я получаю эту ошибку:

shiny::runApp('/srv/shiny-server/', launch.browser = T)
Loading required package: shiny
Listening on http://127.0.0.1:4637
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: www-browser: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: elinks: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: w3m: not found
xdg-open: no method available for opening 'http://127.0.0.1:4637'

Я попытался установить браузер (добавив apt-get install -y firefox в мой Dockerfile), но он все еще не работает.

Я не смог найти никаких учебных пособий / примеров того, как запустить приложение Shiny в Docker без Shiny Server.Поэтому я был бы признателен за любую помощь!

1 Ответ

0 голосов
/ 23 мая 2018

Во втором подходе процесс R пытается открыть браузер в контейнере докера, так как он считает, что он используется в интерактивном режиме.Простой способ изменить это - использовать Rscript -e ... вместо R -e ....В качестве альтернативы вы можете установить для аргумента launch.browser значение FALSE.

. Кроме того, вы должны привязать блестящее приложение к фиксированному порту на любом IP-адресе и опубликовать этот порт на хосте при запуске док-контейнера.Вы можете сделать это с аргументами port = 3838 и host = "0.0.0.0".

Вместо указания этих вещей с помощью аргументов, вы также можете использовать механизм опций R, добавив

options(shiny.port = 3838, shiny.host = "0.0.0.0", shiny.launch.browser = FALSE) 

к Rprofile.site.

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