Dockerfile
FROM ubuntu:16.04
ARG TARGET_BRANCH=master
ARG PHANTASUS_BUILD
ENV OCPU_MASTER_HOME=/var/phantasus/ocpu-root
RUN apt-get -y update && \
apt-get -y dist-upgrade && \
apt-get -y install \
software-properties-common \
git \
libcairo2-dev \
libxt-dev \
libssl-dev \
libssh2-1-dev \
libcurl4-openssl-dev \
apache2 \
libapparmor-dev \
libxml2-dev \
locales
RUN add-apt-repository -y 'deb http://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/' && apt-get -y update
RUN apt-get install -y --allow-unauthenticated r-base r-base-dev
RUN apt-add-repository -y 'deb http://ppa.launchpad.net/maarten-fonville/protobuf/ubuntu zesty main' && \
apt-get -y update
RUN apt-get -y --allow-unauthenticated install \
libprotobuf-dev \
protobuf-compiler
RUN R -e 'install.packages("protolite", repo = "https://cran.rstudio.com/")'
#RUN apt-add-repository -y ppa:opencpu/opencpu-2.0 && \
# apt-get update && \
# apt-get install -y --allow-unauthenticated \
# opencpu-lib
#RUN R -e 'install.packages("opencpu", repo = "https://cran.rstudio.com/")'
RUN touch /etc/apache2/sites-available/opencpu2.conf
RUN printf "ProxyPass /ocpu/ http://localhost:8001/ocpu/\nProxyPassReverse /ocpu/ http://localhost:8001/ocpu\n" >> /etc/apache2/sites-available/opencpu2.conf
RUN sed -i 's/DocumentRoot \/var\/www\/html/RedirectMatch ^\/$ \/phantasus\//g' /etc/apache2/sites-available/000-default.conf
RUN cat /etc/apache2/sites-available/000-default.conf
RUN a2ensite opencpu2
#RUN sh -c 'echo "deb http://cran.rstudio.com/bin/linux/ubuntu xenial/" >> /etc/apt/sources.list'
# protobuf 3.5, with 2GB byte limit
RUN gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
RUN gpg -a --export E084DAB9 | apt-key add -
RUN R -e 'install.packages("devtools", repo = "https://cran.rstudio.com/")'
RUN git clone -b ${TARGET_BRANCH} --recursive https://github.com/ctlab/phantasus /root/phantasus
RUN R -e 'source("https://bioconductor.org/biocLite.R")'
RUN R -e 'devtools::install("/root/phantasus", build_vignettes=T)'
RUN printf "window.PHANTASUS_BUILD='$PHANTASUS_BUILD';" >> /root/phantasus/inst/www/phantasus.js/RELEASE.js
RUN cp -r /root/phantasus/inst/www/phantasus.js /var/www/html/phantasus
RUN a2enmod proxy_http
EXPOSE 80
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
RUN mkdir -p /var/phantasus/cache
RUN mkdir -p /var/phantasus/preloaded
RUN mkdir -p /var/phantasus/ocpu-root
CMD service apache2 start && \
R -e 'library(phantasus); servePhantasus("0.0.0.0", 8001, cacheDir="/var/phantasus/cache", preloadedDir="/var/phantasus/preloaded")'