-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.molgen.mpg.de/loosolab/wilson…
Showing
2 changed files
with
123 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Pulls debian:latest from dockerhub | ||
FROM debian | ||
|
||
# Dockerfile questions go to | ||
MAINTAINER C. Kuenne / MPI-BN / Bioinformatics / carsten.kuenne@mpi-bn.mpg.de | ||
|
||
#Some basic packages, updates and cleanup | ||
RUN apt-get -y update && apt-get -y upgrade && \ | ||
apt-get -y install \ | ||
r-base \ | ||
wget \ | ||
libnlopt-dev \ | ||
libssl-dev \ | ||
libxml2-dev \ | ||
libcurl4-openssl-dev \ | ||
git \ | ||
procps \ | ||
gdebi-core && \ | ||
apt-get clean | ||
|
||
#Installs DEVTOOLS | ||
RUN Rscript -e "install.packages(c('devtools'), repos='https://cran.rstudio.com/')" | ||
|
||
#Installs BIOCONDUCTOR/BiocInstaller | ||
RUN Rscript -e 'source("https://bioconductor.org/biocLite.R")' | ||
|
||
#Install Shiny-Server | ||
#RUN wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.5.6.875-amd64.deb && \ | ||
#gdebi -n shiny-server-1.5.6.875-amd64.deb && \ | ||
#RUN wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.7.907-amd64.deb && \ | ||
#gdebi -n shiny-server-1.5.7.907-amd64.deb && \ | ||
RUN wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.9.923-amd64.deb && \ | ||
gdebi -n shiny-server-1.5.9.923-amd64.deb && \ | ||
rm /srv/shiny-server/index.html && \ | ||
rm -rf /srv/shiny-server/sample-apps | ||
|
||
#install shinythemes | ||
RUN Rscript -e 'install.packages("shinythemes", repos="http://cran.wustl.edu/")' | ||
|
||
#install shinyBS | ||
RUN Rscript -e 'install.packages("shinyBS", repos="http://cran.wustl.edu/")' | ||
|
||
#install old mvtnorm package (1.0-8), because the current 1.0-10 needs r 3.5 (current debian r is 3.3) | ||
RUN Rscript -e 'devtools::install_version(repos="http://cran.wustl.edu/", package = "mvtnorm", version = "1.0-8")' | ||
|
||
#Install WILSON | ||
RUN Rscript -e 'devtools::install_github(repo = "loosolab/wilson", host="github.molgen.mpg.de/api/v3", auth_token = NULL, upgrade = "never")' | ||
|
||
#Install stackdump | ||
#RUN Rscript -e 'devtools::install_github(repo = "jcheng5/stackdump")' | ||
|
||
#Install WILSON App | ||
#RUN git clone -b stackdump https://github.molgen.mpg.de/loosolab/wilson-apps /srv/shiny-server/tmp && \ | ||
RUN git clone https://github.molgen.mpg.de/loosolab/wilson-apps /srv/shiny-server/tmp && \ | ||
cp -a /srv/shiny-server/tmp/wilson-basic/. /srv/shiny-server/ && \ | ||
rm -rf /srv/shiny-server/tmp | ||
|
||
#Install webshot/phantomjs to permit download of interactive plots with plot.ly | ||
RUN Rscript -e 'install.packages("webshot", repos="http://cran.wustl.edu")' | ||
RUN Rscript -e 'webshot::install_phantomjs()' | ||
RUN cp /root/bin/phantomjs /usr/local/bin | ||
|
||
EXPOSE 3838 | ||
|
||
RUN rm -rf /srv/shiny-server/data && \ | ||
mkdir /srv/shiny-server/data | ||
|
||
#check current directory for the presence of clarion input files (*.se, *.clarion) -> include in container | ||
#add pointless additional copy of entrypoint.sh because otherwise the building will fail if no clarion files exist (yuck!) | ||
ADD entrypoint.sh *.se *.clarion /srv/shiny-server/data/ | ||
RUN rm /srv/shiny-server/data/entrypoint.sh | ||
|
||
ADD entrypoint.sh /usr/bin/entrypoint.sh | ||
RUN chmod +x /usr/bin/entrypoint.sh | ||
|
||
#switch shiny user uid to 1000 (previously docker user); set permissions | ||
RUN usermod -u 1000 shiny && \ | ||
chown -R shiny:shiny /srv/shiny-server/ && \ | ||
mkdir -p /srv/shiny-server/logs && \ | ||
chmod ugo+wrX /srv/shiny-server/logs | ||
|
||
CMD ["/usr/bin/entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#!/bin/bash | ||
|
||
#this script is run when the container is started | ||
#optionally adds $CONTAINERKEY to shiny server url by modifying shiny-server.conf | ||
# | ||
#example: | ||
#http://<IP>:<PORT> | ||
#-> | ||
#http://<IP>:<PORT>/<CONTAINERKEY> | ||
# | ||
#to use this add the "-e" parameter when starting a container: | ||
#docker run ... -e CONTAINERKEY=${container_key} ... | ||
#example: | ||
#docker run --name='sav1' -d -p 50000:3838 -v '/mnt/agnerds/docker/projects/sav1':'/srv/shiny-server/data' -e CONTAINERKEY=sav1 loosolab/wilson:1.2" | ||
#-> http://<IP>:50000/sav1 | ||
|
||
conf="/etc/shiny-server/shiny-server.conf" | ||
|
||
#create backup of original shiny-server.conf | ||
if [[ ! -f "${conf}.old" ]]; then | ||
cp ${conf} ${conf}.old | ||
else | ||
cp ${conf}.old ${conf} | ||
fi | ||
|
||
#add parameter(s) at top of .conf | ||
param="preserve_logs true;" | ||
sed -i "1i $param" ${conf} | ||
|
||
param="sanitize_errors off;" | ||
sed -i "1i $param" ${conf} | ||
|
||
#if environment variable given -> add key to url | ||
if [[ ! -z "$CONTAINERKEY" ]]; then | ||
CONTAINERKEY=$(echo -e $CONTAINERKEY | sed 's/\//\\\//g') #to escape "/" | ||
cat ${conf} | sed "s/location \//location \/$CONTAINERKEY/g" >${conf}.1 | ||
mv ${conf}.1 ${conf} | ||
fi | ||
|
||
#start shiny server | ||
exec shiny-server 2>&1 >>/var/log/shiny-server.log |