diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..1e5cbdb1f27baf8e931d5f6c6b9316516c9709b8 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.git* +benchmark.* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..1151032651df419b03000ace0545ff23b56058f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +FROM rocker/shiny + +RUN R -e 'install.packages( \ + c("BiocManager", "DT", "dplyr", "factoextra", "glue", "microbenchmark", "shinycustomloader", "shinydashboard"), \ + Ncpus='$(nproc)', \ + clean=1, \ + verbose=1 \ + )' + +RUN R -e 'BiocManager::install("phyloseq", Ncpus='$(nproc)', clean=1)' + +ARG DUMB_INIT_VERSION=1.2.2 +RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 \ + && chmod +x /sbin/dumb-init +ENTRYPOINT ["/sbin/dumb-init", "--"] + +CMD ["/usr/bin/shiny-server.sh"] + +RUN rm -rf /srv/shiny-server/* \ + && mkdir -p /srv/shiny-server/easy16s /var/lib/shiny-server + +ADD *.R /srv/shiny-server/easy16s/ +ADD demo/demo.RData demo/chaillou.* /srv/shiny-server/easy16s/demo/ +ADD www /srv/shiny-server/easy16s/www + +RUN chmod -R a+rX /srv/shiny-server/ \ + && chgrp shiny /var/lib/shiny-server \ + && chmod g+rwxs /var/lib/shiny-server + +USER shiny