https://github.com/deanmarchiori/dockerised-shiny
Basic example of running shiny in docker
https://github.com/deanmarchiori/dockerised-shiny
Last synced: 4 months ago
JSON representation
Basic example of running shiny in docker
- Host: GitHub
- URL: https://github.com/deanmarchiori/dockerised-shiny
- Owner: deanmarchiori
- Created: 2019-05-14T03:20:47.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-06-13T05:35:51.000Z (almost 6 years ago)
- Last Synced: 2024-08-13T07:14:30.199Z (8 months ago)
- Language: R
- Size: 23.4 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- jimsghstars - deanmarchiori/dockerised-shiny - Basic example of running shiny in docker (R)
README
# Dockerised Shiny
Basic minimal example for running shiny in Docker. It is assumed you have Docker installed.
## Structure
Our directory contains a folder called `myapp` which contains our shiny app
file and other supporting files.At the top level we have our dockerfile and other config files. These should
be modified accordingly.```
dockerised-shiny/
├── Dockerfile
├── myapp
│ └── app.R
├── README.md
├── shiny-server.conf
└── shiny-server.sh```
### Dockerfile
This should be adapted as required.
```
# Using rocker/rver::version, update version as appropriate
FROM rocker/r-ver:3.5.0# install dependencies
RUN apt-get update && apt-get install -y \
sudo \
gdebi-core \
pandoc \
pandoc-citeproc \
libcurl4-gnutls-dev \
libcairo2-dev \
libxt-dev \
libxml2-dev \
libssl-dev \
wget# Download and install shiny server
RUN wget --no-verbose https://download3.rstudio.org/ubuntu-14.04/x86_64/VERSION -O "version.txt" && \
VERSION=$(cat version.txt) && \
wget --no-verbose "https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-$VERSION-amd64.deb" -O ss-latest.deb && \
gdebi -n ss-latest.deb && \
rm -f version.txt ss-latest.deb && \
. /etc/environment && \
R -e "install.packages(c('shiny', 'rmarkdown'), repos='$MRAN')" && \
cp -R /usr/local/lib/R/site-library/shiny/examples/* /srv/shiny-server/# Copy configuration files into the Docker image
COPY shiny-server.conf /etc/shiny-server/shiny-server.conf
COPY shiny-server.sh /usr/bin/shiny-server.sh# Copy shiny app to Docker image
COPY /myapp /srv/shiny-server/myapp# Expose desired port
EXPOSE 80CMD ["/usr/bin/shiny-server.sh"]
```
## Build
To build the Docker image (called `myapp`)```
docker build -t myapp .
```## Run
To run a container based on our Docker image:This will run the docker image 'myapp' in a container (in detached mode) and expose post 80. It will
name it 'myapp' and remove it when exited.```
docker run --rm -p 80:80 --name myapp -d myapp
```## Use
http://127.0.0.1/myapp/
## Some helpful commands
### List Images
```
docker images
```### List All Containers
```
docker ps -a
```
### Remove ContainersFor individual containers add the container ID
```
$ docker rm
```
To remove all exited containers :```
$ docker rm $(docker ps -a -q -f status=exited)
```### System Prune
Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.
```
docker system prune -a
```## Save as tar-archive
```
docker save -o ~/myapp.tar myapp
```## Load and Run Archive
```
docker load -i myapp.tar
docker run myapp
```## More info and References
https://hub.docker.com/r/rocker/shiny
https://www.docker.com/get-started
https://www.bjoern-hartmann.de/post/learn-how-to-dockerize-a-shinyapp-in-7-steps/