-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathDockerfile
37 lines (32 loc) · 1.32 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FROM rocker/shiny:4.1.0
# https://github.com/rocker-org/rocker-versioned2
# https://hub.docker.com/r/rocker/shiny
LABEL \
maintainer="Shixiang Wang" \
email="w_shixiang@163.com" \
description="Docker Image for UCSCXenaShiny" \
org.label-schema.license="GPLv3 (c) Xena Shiny Team" \
org.label-schema.vcs-url="https://github.com/openbiox/UCSCXenaShiny"
# Install UCSCXenaShiny
RUN install2.r remotes UCSCXenaShiny &&\
R -e 'remotes::install_github("openbiox/UCSCXenaShiny", dependencies = TRUE)'
# Install extra dependencies
RUN R -e 'writeLines(readLines(system.file("shinyapp", "App.R", package = "UCSCXenaShiny"))[25:98], "/opt/ext-deps.R")' &&\
Rscript /opt/ext-deps.R &&\
rm /opt/ext-deps.R
# Deploy Shiny shinyapp
COPY deploy.R deploy.html /opt/
RUN chmod u+x /opt/deploy.R &&\
rm -rf /srv/shiny-server/* &&\
mkdir /srv/shiny-server/ucscxenashiny &&\
mv /opt/deploy.R /srv/shiny-server/ucscxenashiny/app.R &&\
mv /opt/deploy.html /srv/shiny-server/index.html
# allow permission
RUN mkdir -p /xena/datasets && chown -R shiny:shiny /xena
# preload datasets
RUN cat -n /srv/shiny-server/ucscxenashiny/app.R &&\
R -e 'writeLines(readLines("/srv/shiny-server/ucscxenashiny/app.R")[10:25], "/opt/preload.R")' &&\
Rscript /opt/preload.R &&\
rm /opt/preload.R
WORKDIR /xena
EXPOSE 3838