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 (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-06-13T05:35:51.000Z (over 6 years ago)
- Last Synced: 2024-12-04T09:39:05.048Z (12 months ago)
- Language: R
- Size: 23.4 KB
- Stars: 7
- 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 80
CMD ["/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 Containers
For 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/