Public | Automated Build

Last pushed: 24 days ago
Short Description
Short description is empty for this repo.
Full Description

Docker for Shiny Server

This is a Dockerfile for Shiny Server on Debian "testing". It is based on the r-base image.

The image is available from Docker Hub.

As of January 2017, the Shiny Server log is written to stdout and can be viewed using docker logs. The logs for individual apps are in the /var/log/shiny-server directory, as described in the Shiny Server Administrator's Guide

Usage:

To run a temporary container with Shiny Server:

docker run --rm -p 3838:3838 rocker/shiny

To expose a directory on the host to the container use -v <host_dir>:<container_dir>. The following command will use one /srv/shinyapps as the Shiny app directory and /srv/shinylog as the directory for Shiny app logs. Note that if the directories on the host don't already exist, they will be created automatically.:

docker run --rm -p 3838:3838 \
    -v /srv/shinyapps/:/srv/shiny-server/ \
    -v /srv/shinylog/:/var/log/shiny-server/ \
    rocker/shiny

If you have an app in /srv/shinyapps/appdir, you can run the app by visiting http://localhost:3838/appdir/. (If using boot2docker, visit http://192.168.59.103:3838/appdir/)

In a real deployment scenario, you will probably want to run the container in detached mode (-d) and listening on the host's port 80 (-p 80:3838):

docker run -d -p 80:3838 \
    -v /srv/shinyapps/:/srv/shiny-server/ \
    -v /srv/shinylog/:/var/log/shiny-server/ \
    rocker/shiny

Trademarks

Shiny and Shiny Server are registered trademarks of RStudio, Inc. The use of the trademarked terms Shiny and Shiny Server and the distribution of the Shiny Server through the images hosted on hub.docker.com has been granted by explicit permission of RStudio. Please review RStudio's trademark use policy and address inquiries about further distribution or other questions to permissions@rstudio.com.

Docker Pull Command
Owner
rocker
Source Repository

Comments (10)
stefanlasiewski
2 days ago

By default, Shiny application logs are written to /var/log/shiny-server/ inside the container. Can I redirect the logs to stdout, so that they are viewable using docker logs and forwarded on to our Elastic Stack?

I imagine I would do something with the log_dir parameter...

In my case, please assume that -v /srv/shinylog/:/var/log/shiny-server/ isn't a good solution.

simonmassey
24 days ago

This container gives a security warning and cannot be deployed on any public paas providers which don't allow root images such as OpenShift v3 Pro. No-one should be building images that need root if they expect them to be deployed into professionally maintained environments.

[2017-07-21 15:13:47.543] [WARN] shiny-server - Running as root unnecessarily is a security risk! You could be running more securely as non-root.

keqiangli
2 months ago

I strongly recommend using Packrat with your project to people who need more R packages than this image has to run their apps.

Once your app's dependencies is managed through Packrat, you can follow this post https://support.rstudio.com/hc/en-us/articles/216528108-Deploying-packrat-projects-to-Shiny-Server-Pro(The tutorial title somehow says it's for Pro version, but it works for non-commercial version as well) to put your app anywhere on your computer and then use the volume parameter -v to mount this folder to your container and your app should run just fine. You command to run the docker container would be something like :

docker run -d -p [a port on my computer]:3838 \
-v ~/PATH/TO/MY/APPS/:/srv/shiny-server/ \
-v ~/PATH/TO/MY/LOGS/:/var/log/shiny-server/ \
rocker/shiny

hahnemann
2 months ago

Does this work with Alpine Linux? I am able to install docker and this container but when I do "docker run --rm -p 3838:3838 rocker/shiny" nothing happens. I verified no containers are running via "docker ps".

cookatrice
6 months ago

Thank you. :) This work fine to me.
If you need some package, install yourself.
In my case, I login to shiny-server that id 'shiny' and run 'R'. after I install packages 'shiny', 'tm','wordcloud'..etc.
it work fine too. :)

pglezen
7 months ago

In order to add ggplot2 support to my shiny image, I added the following line to my Dockerfile.

RUN R -e "install.packages(c('ggplot2'), repos='http://cran.rstudio.com/')"

This is how I built an experimental image at lacounty/shiny.

vlada5
7 months ago

got same prob. I want to add ggplot2 and plotly packages but not really shure how to? Does anyone know?

dubrovskii
7 months ago

I can't run shinyapp with plotlyOutput
install.packages(c('ggplot2', 'plotly'..
Just can't understand why..

pglezen
9 months ago

This worked fine for me and my Shiny apps once I realized I needed to add ggplot2 myself. Thanks for making this available.

bluszcz
2 years ago

I am getting this error all the time - any idea?

9306a38b9954: Error downloading dependent layers 
FATA[3164] Error pulling image (latest) from rocker/shiny, Untar exit status 1 unexpected EOF