Single app in container with shinyproxy


#1

I am currently running single R Shiny app in a docker container on my company’s internal cloud. I’m using the public version of Shiny Server in my dockerfile and it works fine expect that I can’t pull in the users username for row level security. So I was hoping to use ShinyProxy in place of Shiny Server.

I’m new to this, and not really and IT professional, so it’s somewhat confusing to me. But when I look at the ShinyProxy documentation, it seems to want to create a server application to serve up multiple apps. I just want to serve up 1 app the way my current Shiny Server public app does.

How do I do this?

I was really hoping that I could just change a few lines in my Dockerfile to pull in ShinyProxy instead of Shiny Server pro. Is that possible?


#2

Hey @tbusbice,

I’ve just been working on this very thing and finally got it working.

First, shinyproxy exists outside of the docker images. It basically provides a menu of images that users can select from and spins up a container of the selected image (this is coming from someone that also is figuring things out on the go).

The images are specified in the specs: section of the application.yml file (see the shinyproxy.io configuration page for further info).

The layout looks like this:

  specs:
  - id: 01_hello
    display-name: Hello Application
    description: Application which demonstrates the basics of a Shiny app
    container-cmd: ["R", "-e", "shinyproxy::run_01_hello()"]
    container-image: openanalytics/shinyproxy-demo
    access-groups: [scientists, mathematicians]
  - id: 06_tabsets
    container-cmd: ["R", "-e", "shinyproxy::run_06_tabsets()"]
    container-image: openanalytics/shinyproxy-demo
    access-groups: scientists
  - id: euler
    display-name: Euler's number
    container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
    container-image: openanalytics/shinyproxy-template
    access-groups: scientists

For use, there should be no problem with only having one app specified in the specs: section.