FROM rocker/r-ver:4.2.0 # Install system dependencies RUN apt-get update && apt-get install -y \ libcurl4-openssl-dev \ libssl-dev \ libxml2-dev \ libgsl-dev \ libglpk-dev \ libgmp3-dev \ libjq-dev \ libv8-dev \ libudunits2-dev \ libgdal-dev \ libproj-dev \ libfontconfig1-dev \ libharfbuzz-dev \ libfribidi-dev \ libfreetype6-dev \ libpng-dev \ libtiff5-dev \ libjpeg-dev \ jags # Install R packages RUN R -e "install.packages(c('plumber', \ 'aggregation', 'aides', 'altmeta', 'amanida', 'baggr', 'bamdit', 'BayesCombo', 'bayesmeta', 'BayesMultMeta', 'bipd', 'bnma', 'boot.heterogeneity', 'boutliers', 'bspmma', 'CAMAN', 'catmap', 'CausalMetaR', 'CBnetworkMA', 'CIAAWconsensus', 'citationchaser', 'coefa', 'CohensdpLibrary', 'compute.es', 'corrmeta', 'CoTiMA', 'CPBayes', 'crossnma', 'crwbmetareg', 'dfmeta', 'diagmeta', 'digitize', 'dmetatools', 'dosresmeta', 'DTAplots', 'ecoreg', 'effectsize', 'effsize', 'epiR', 'es.dif', 'esci', 'estimraw', 'estmeansd', 'EValue', 'EvidenceSynthesis', 'forestly', 'forestmodel', 'forestplot', 'forestploter', 'forplo', 'fsn', 'gap', 'GENMETA', 'getmstatistic', 'getspres', 'GMCM', 'harmonicmeanp', 'heterometa', 'jarbes', 'joint.Cox', 'juicr', 'KenSyn', 'MAd', 'mada', 'MBNMAdose', 'MBNMAtime', 'mc.heterogeneity', 'MendelianRandomization', 'meta.shrinkage', 'meta4diag', 'MetaAnalyser', 'metabias', 'metaBLUE', 'metaBMA', 'metabolic', 'metabup', 'metacart', 'metaconfoundr', 'metadat', 'metaDigitise', 'metaforest', 'metafuse', 'metagam', 'metaGE', 'metagear', 'metainc', 'MetaIntegration', 'MetaIntegrator', 'metaLik', 'metaMA', 'metamedian', 'metamicrobiomeR', 'metamisc', 'metansue', 'metap', 'metapack', 'metaplus', 'metapower', 'metapro', 'metarep', 'metaRNASeq', 'metasens', 'MetaSKAT', 'MetaStan', 'MetaSubtract', 'metaSurvival', 'metatest', 'metaumbrella', 'MetaUtility', 'metavcov', 'metaviz', 'metawho', 'miniMeta', 'mixmeta', 'MOTE', 'multibiasmeta', 'multinma', 'mvmeta', 'MVPBT', 'mvtmeta', 'NMA', 'nmadb', 'NMADiagT', 'nmaINLA', 'NMAoutlier', 'nmaplateplot', 'nmarank', 'nmathresh', 'ofGEM', 'OssaNMA', 'pcnetmeta', 'pema', 'phacking', 'pimeta', 'PINMA', 'POMADE', 'poolr', 'PRISMA2020', 'PRISMAstatement', 'psychmeta', 'psymetadata', 'PublicationBias', 'publipha', 'puniform', 'ra4bayesmeta', 'RandMeta', 'rankinma', 'ratesci', 'RBesT', 'RcmdrPlugin.EZR', 'RcmdrPlugin.MA', 'RcmdrPlugin.RMTCJags', 'reappraised', 'rema', 'remaCor', 'revtools', 'rma.exact', 'rmeta', 'rnmamod', 'RoBMA', 'RobustBayesianCopas', 'robustmeta', 'RobustRankAggreg', 'RTSA', 'SCMA', 'selectMeta', 'SingleCaseES', 'smd', 'SPAtest', 'ssifs', 'TFisher', 'vcmeta', 'viscomp', 'weightr', 'xmeta', \ 'brms', 'clubSandwich', 'dmetar', 'dplyr', 'esc', 'extraDistr', 'forcats', 'gemtc', 'ggplot2', 'ggridges', 'glue', 'igraph', 'meta', 'metafor', 'metaSEM', 'netmeta', 'openxlsx', 'osfr', 'PerformanceAnalytics', 'rjags', 'robvis', 'semPlot', 'stringr', 'tidybayes', 'tidyverse', 'wildmeta'), \ repos='https://cloud.r-project.org/')" # Install specific versions of packages RUN R -e "devtools::install_version('brms', version = '2.18.0')" RUN R -e "devtools::install_version('clubSandwich', version = '0.5.6')" RUN R -e "devtools::install_version('dplyr', version = '1.0.10')" RUN R -e "devtools::install_version('esc', version = '0.5.1')" RUN R -e "devtools::install_version('extraDistr', version = '1.9.1')" RUN R -e "devtools::install_version('forcats', version = '0.5.1')" RUN R -e "devtools::install_version('gemtc', version = '0.8-6')" RUN R -e "devtools::install_version('ggplot2', version = '3.3.5')" RUN R -e "devtools::install_version('ggridges', version = '0.5.2')" RUN R -e "devtools::install_version('glue', version = '1.4.1')" RUN R -e "devtools::install_version('igraph', version = '1.2.5')" RUN R -e "devtools::install_version('meta', version = '6.1.0')" RUN R -e "devtools::install_version('metafor', version = '3.8.1')" RUN R -e "devtools::install_version('metaSEM', version = '1.3.0')" RUN R -e "devtools::install_version('metasens', version = '1.5.1')" RUN R -e "devtools::install_version('netmeta', version = '2.1.0')" RUN R -e "devtools::install_version('openxlsx', version = '4.2.5')" RUN R -e "devtools::install_version('osfr', version = '0.2.8')" RUN R -e "devtools::install_version('PerformanceAnalytics', version = '2.0.4')" RUN R -e "devtools::install_version('robvis', version = '0.3.0')" RUN R -e "devtools::install_version('semPlot', version = '1.1.5')" RUN R -e "devtools::install_version('stringr', version = '1.4.0')" RUN R -e "devtools::install_version('tidybayes', version = '2.1.1')" RUN R -e "devtools::install_version('tidyverse', version = '1.3.1')" RUN R -e "devtools::install_version('wildmeta', version = '0.1.0')" # Install dmetar from GitHub RUN R -e "remotes::install_github('MathiasHarrer/dmetar')" # Copy the API script COPY meta_analysis_api.R /app/meta_analysis_api.R # Set the working directory WORKDIR /app # Expose the port the app runs on EXPOSE 7860 # Run the API CMD ["R", "-e", "library(plumber); r <- plumb('meta_analysis_api.R'); r$run(host='0.0.0.0', port=7860)"]