|
1 | | -# Ubuntu 22.04 (Jammy) · R 4.2 · Dependencies for ExampleStudy |
2 | | -# For Snowflake ODBC use: docker build --platform linux/amd64 ... |
3 | | -FROM rocker/rstudio:4.2 |
| 1 | +# Study image: prebuilt base + repo + renv::restore(). |
| 2 | +# Build in two steps: |
| 3 | +# 1) Base: docker build -f Dockerfile.base -t examplestudy-base:latest . |
| 4 | +# (Optionally push: docker push <registry>/examplestudy-base:latest) |
| 5 | +# 2) Study: docker build -t examplestudy:latest . |
| 6 | +# (Then sign and push per your CI, e.g. cosign sign, docker push) |
| 7 | +ARG BASE_IMAGE=examplestudy-base:latest |
| 8 | +FROM ${BASE_IMAGE} |
4 | 9 | LABEL org.opencontainers.image.maintainer="Adam Black <a.black@darwin-eu.org>" |
5 | 10 |
|
6 | | -# Install java and rJava |
7 | | -RUN apt-get -y update && apt-get install -y \ |
8 | | - default-jdk \ |
9 | | - r-cran-rjava \ |
10 | | - sudo \ |
11 | | - && apt-get clean \ |
12 | | - && rm -rf /var/lib/apt/lists/ \ |
13 | | - && sudo R CMD javareconf |
14 | | - |
15 | | -RUN echo 'options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/2026-02-01"))' >>"${R_HOME}/etc/Rprofile.site" |
16 | | -RUN install2.r --error rJava && rm -rf /tmp/download_packages/ /tmp/*.rds |
17 | | -RUN install2.r --error DatabaseConnector && rm -rf /tmp/download_packages/ /tmp/*.rds |
18 | | -ENV DATABASECONNECTOR_JAR_FOLDER="/opt/hades/jdbc_drivers" |
19 | | -RUN R -e "DatabaseConnector::downloadJdbcDrivers('all');" |
20 | | - |
21 | | -RUN install2.r --error Andromeda && rm -rf /tmp/download_packages/ /tmp/*.rds |
22 | | -RUN install2.r --error RJSONIO && rm -rf /tmp/download_packages/ /tmp/*.rds |
23 | | -RUN install2.r --error CirceR && rm -rf /tmp/download_packages/ /tmp/*.rds |
24 | | -RUN install2.r --error SqlRender && rm -rf /tmp/download_packages/ /tmp/*.rds |
25 | | -RUN install2.r --error renv && rm -rf /tmp/download_packages/ /tmp/*.rds |
26 | | - |
27 | | -# Install utility R packages |
28 | | -RUN apt-get -y update && apt-get install -y \ |
29 | | - libxml2-dev libssl-dev libcurl4-openssl-dev \ |
30 | | - && apt-get clean \ |
31 | | - && rm -rf /var/lib/apt/lists/ |
32 | | - |
33 | | -RUN install2.r --error openssl httr xml2 remotes && rm -rf /tmp/download_packages/ /tmp/*.rds |
34 | | -RUN install2.r --error duckdb && rm -rf /tmp/download_packages/ /tmp/*.rds |
35 | | - |
36 | | -# Install odbc and RPostgres drivers (unixODBC + dev headers + pkg-config for R odbc package) |
37 | | -# CXX required: R was built without C++ compiler; odbc's configure invokes ${CXX} -E |
38 | | -RUN apt-get -y update && apt-get install -y --install-suggests \ |
39 | | - unixodbc unixodbc-dev libpq-dev curl pkg-config build-essential \ |
40 | | - && apt-get clean \ |
41 | | - && rm -rf /var/lib/apt/lists/ \ |
42 | | - && PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig \ |
43 | | - CXX=g++ \ |
44 | | - install2.r --error RPostgres duckdb odbc \ |
45 | | - && rm -rf /tmp/download_packages/ /tmp/*.rds |
46 | | - |
47 | | -# Install Darwin packages (and study Imports: dplyr, ggplot2, shiny, plotly) |
48 | | -RUN install2.r --error \ |
49 | | - omopgenerics \ |
50 | | - CDMConnector \ |
51 | | - IncidencePrevalence \ |
52 | | - PatientProfiles \ |
53 | | - TreatmentPatterns \ |
54 | | - DrugExposureDiagnostics \ |
55 | | - DrugUtilisation \ |
56 | | - dplyr \ |
57 | | - ggplot2 \ |
58 | | - shiny \ |
59 | | - plotly \ |
60 | | - && rm -rf /tmp/download_packages/ /tmp/*.rds |
61 | | - |
62 | | -# GitHub token for installs (pass at build time: docker build --build-arg GITHUB_PAT=xxx) |
63 | | -RUN echo "DATABASECONNECTOR_JAR_FOLDER=/opt/hades/jdbc_drivers" >> /usr/local/lib/R/etc/Renviron |
64 | | -RUN echo "RENV_PATHS_CELLAR=/opt/renv_cellar" >> /usr/local/lib/R/etc/Renviron |
65 | | - |
66 | | -# SQL Server odbc |
67 | | -RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc > /dev/null |
68 | | -RUN curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list |
69 | | -RUN apt-get clean && apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 |
70 | | - |
71 | | -# Snowflake odbc |
72 | | -RUN curl -fsSL --output snowflake-odbc-3.1.1.x86_64.deb https://sfc-repo.snowflakecomputing.com/odbc/linux/3.1.1/snowflake-odbc-3.1.1.x86_64.deb |
73 | | -RUN sudo dpkg -i snowflake-odbc-3.1.1.x86_64.deb |
74 | | - |
75 | | -RUN install2.r --error here log4r testthat renv \ |
76 | | - && rm -rf /tmp/download_packages/ /tmp/*.rds |
77 | | - |
78 | | -RUN echo "EUNOMIA_DATA_FOLDER=/opt/eunomia_data" >> /usr/local/lib/R/etc/Renviron |
79 | | -RUN R -e 'CDMConnector::downloadEunomiaData()' |
80 | | - |
81 | | -# Install vim |
82 | | -RUN apt-get -y update && apt-get install -y vim && apt-get clean && rm -rf /var/lib/apt/lists/ |
83 | | - |
84 | | -# Fix Snowflake odbc lib path |
85 | | -RUN sed -i 's/libodbcinst.so.1/libodbcinst.so.2/g' /usr/lib/snowflake/odbc/lib/simba.snowflake.ini |
86 | | - |
87 | | - |
88 | | -RUN mkdir /results |
89 | | - |
90 | | -# Copy package source into image (for running study and CI tests) |
91 | | -COPY . /code |
92 | 11 | WORKDIR /code |
| 12 | +COPY . /code |
93 | 13 |
|
94 | 14 | # Install R package dependencies from renv.lock |
95 | 15 | RUN R -e "renv::restore()" |
|
0 commit comments