From 8fe8caa2a83cd574b9a31a847657f0abd9b0bf05 Mon Sep 17 00:00:00 2001 From: "anjana.elapavalore" <anjana.elapavalore@uni.lu> Date: Fri, 12 Jul 2024 11:57:31 +0200 Subject: [PATCH] optimized DockerFile --- Dockerfile | 101 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 93 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 722fc92..3ff93f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,102 @@ -FROM gitlab.lcsb.uni.lu:4567/eci/shinyscreen/dep/ssuser:latest -MAINTAINER todor.kondic@uni.lu -EXPOSE 5432 -ENV SS_MF_DB="PubChemLite_exposomics.csv" +# Use a base image with R pre-installed +FROM ubuntu:jammy-20230126 + +# Set non-interactive frontend and timezone +ENV DEBIAN_FRONTEND=noninteractive +ENV TZ=Etc/UTC ENV SS_CPU 2 + +# Install system dependencies +RUN apt-get update && apt-get install -y --no-install-recommends \ + apt-utils \ + r-base \ + r-recommended \ + g++ \ + gfortran \ + curl \ + wget \ + libxml2-dev \ + libssl-dev \ + libssh2-1-dev \ + zlib1g-dev \ + xdg-utils \ + automake \ + autoconf \ + gcc \ + make \ + pkg-config \ + net-tools \ + git-all \ + default-jre-headless \ + default-jdk \ + libpng16-16 \ + libpng-tools \ + libpng-dev \ + libpng++-dev \ + libnetcdf* \ + openbabel \ + libhdf5-1* \ + libhdf5-hl-1* \ + r-cran-rcolorbrewer \ + r-cran-data.table \ + r-cran-biocmanager \ + r-cran-tidyverse \ + r-cran-cowplot \ + r-cran-curl \ + r-cran-promises \ + r-cran-yaml \ + r-cran-dt \ + r-cran-future \ + r-cran-rjava \ + r-cran-rsvg \ + r-cran-png \ + r-cran-rmarkdown \ + r-cran-shiny \ + r-cran-htmltools \ + r-cran-rcdklibs \ + r-cran-rcdk \ + r-cran-fingerprint \ + r-bioc-affy \ + r-bioc-affyio \ + r-cran-devtools + +# Clean up +RUN rm -rf /var/lib/apt/lists/* /tmp/* + +# Install R packages +RUN R -e 'install.packages("enviPat", dependencies=TRUE)' +RUN R -e 'BiocManager::install(c("Rhdf5lib","mzR","MSnbase","RMassBank"), update=FALSE)' +RUN R -e 'devtools::install_git("https://github.com/schymane/RChemMass", dependencies=FALSE)' + +# Set JAVA_HOME +ENV JAVA_HOME=/usr/lib/jvm/default-java +ENV PATH=$JAVA_HOME/bin:$PATH + +# Clean up +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +# Create a user and directories +RUN useradd -ms /bin/bash ssuser +USER root +WORKDIR /home/ssuser +RUN mkdir -p top_data_dir projects users +RUN chown -R ssuser:ssuser /home/ssuser + +# Copy and build the Shiny app ADD . shinyscreen/ RUN R CMD build shinyscreen -USER root RUN R CMD INSTALL shinyscreen + +# Switch back to ssuser USER ssuser RUN cp shinyscreen/runme /home/ssuser/runme RUN chmod u+x /home/ssuser/runme -# RUN chown ssuser /home/ssuser/runme -# RUN chown -R ssuser /home/ssuser/shinyscreen -RUN R -e 'library(shinyscreen);setwd("~");init(top_data_dir="~/top_data_dir",projects="~/projects",users_dir="~/users",metfrag_db_dir=Sys.getenv("SS_MF_DB_DIR"),metfrag_jar="/usr/local/bin/MetFragCommandLine.jar",no_structure_plots=T,save=T,merge=F)' + +# Initialize the app with absolute paths +RUN R -e 'library(shinyscreen); setwd("~"); init(top_data_dir="/home/ssuser/top_data_dir", projects="/home/ssuser/projects", users_dir="/home/ssuser/users", no_structure_plots=TRUE, save=TRUE, merge=FALSE)' + +# Expose the port and set the entrypoint +EXPOSE 3838 ENTRYPOINT ["/home/ssuser/runme"] CMD ["app"] + -- GitLab