-
Notifications
You must be signed in to change notification settings - Fork 2
/
Dockerfile
76 lines (58 loc) · 2.76 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Use an official R runtime as a parent image
FROM rocker/shiny:latest
# "shiny"
ENV USER=shiny
# Install system dependencies including those for tidyverse
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install --no-install-recommends -y \
git libxml2-dev libmagick++-dev \
wget libgomp1 \
libssl-dev \
make \
pandoc && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# libcurl4-gnutls-dev \
# libcurl4-openssl-dev \
# Install Blast
# FROM ncbi/blast:2.13.0
RUN wget ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.13.0/ncbi-blast-2.13.0+-x64-linux.tar.gz -O /tmp/blast.tar.gz && \
tar zxvf /tmp/blast.tar.gz -C /opt/ && rm /tmp/blast.tar.gz
ENV PATH="/opt/ncbi-blast-2.13.0+/bin:${PATH}"
# Install Basic Utility R Packages
RUN R -e "install.packages('remotes')" \
&& R -e "install.packages('BiocManager')" \
&& R -e "BiocManager::install('KEGGREST')" \
&& R -e "remotes::install_version('tidyverse', version = '2.0.0', dependencies= T)" \
&& R -e "remotes::install_version('arrow', version = '14.0.0', dependencies= T)" \
&& R -e "remotes::install_version('data.table', version = '1.14.8', dependencies= T)" \
&& R -e "remotes::install_version('rBLAST', repos = 'https://mhahsler.r-universe.dev', dependencies= T, version='0.99.0')" \
#&& R -e "remotes::install_github('mhahsler/rBLAST', dependencies= T)" \
&& R -e "remotes::install_version('leaflet', version = '2.1.2', dependencies= T)" \
&& R -e "remotes::install_version('sp', version = '1.6-1', dependencies= T)" \
&& R -e "remotes::install_version('magrittr', version = '2.0.3', dependencies= T)" \
&& R -e "remotes::install_version('shinythemes', version = '1.2.0', dependencies= T)" \
&& R -e "remotes::install_version('DT', version = '0.28', dependencies= T)" \
&& R -e "remotes::install_version('shinyjs', version = '2.1.0', dependencies= T)" \
&& R -e "remotes::install_version('vembedr', version = '0.1.5', dependencies= T)" \
&& R -e "remotes::install_version('multidplyr', version = '0.1.3', dependencies= T)" \
&& R -e "remotes::install_version('shinybusy', version = '0.3.1', dependencies= T)"
# Additional packages for logging and diagnosis
RUN R -e "install.packages('log4r')" \
&& R -e "install.packages('readr')" \
&& R -e "install.packages('RcppTOML')"
RUN mkdir /data \
&& mkdir /rlogs \
&& chown -R shiny:shiny /data \
&& chown -R shiny:shiny /rlogs
RUN rm -rf /srv/shiny-server/*
COPY /app/ /srv/shiny-server/app
COPY .Renviron.template /srv/shiny-server/app/.Renviron
COPY shiny-customized.config /etc/shiny-server/shiny-server.conf
WORKDIR /srv/shiny-server/app
RUN chown -R shiny:shiny . && \
chmod ug+x start-script.sh
USER $USER
EXPOSE 3838
CMD ["/usr/bin/shiny-server"]