From a55fb3915c123be3636774f1668531eca764ca79 Mon Sep 17 00:00:00 2001 From: Michal Baumgartner Date: Fri, 23 Jan 2026 14:56:32 +0100 Subject: [PATCH 1/2] feat: Speed up R builds --- ir/ir-base/Dockerfile.ir | 4 ++-- ir/ir-with-libs/Dockerfile.ir | 45 ++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/ir/ir-base/Dockerfile.ir b/ir/ir-base/Dockerfile.ir index 1de679a..ebce65d 100644 --- a/ir/ir-base/Dockerfile.ir +++ b/ir/ir-base/Dockerfile.ir @@ -25,9 +25,9 @@ RUN python -m venv jupyter-env && \ . ./jupyter-env/bin/activate && \ pip install --upgrade pip notebook -# Install IRkernel and configure it +# Install IRkernel and configure it (using Posit Package Manager for faster binary installs) RUN . ./jupyter-env/bin/activate && \ - R -e "install.packages('IRkernel', repos='http://cran.rstudio.com/')" && \ + R -e "install.packages('IRkernel', repos='https://packagemanager.posit.co/cran/__linux__/bullseye/latest')" && \ R -e "IRkernel::installspec()" # Clean up unnecessary files to reduce the image size diff --git a/ir/ir-with-libs/Dockerfile.ir b/ir/ir-with-libs/Dockerfile.ir index 54ff8d4..6511694 100644 --- a/ir/ir-with-libs/Dockerfile.ir +++ b/ir/ir-with-libs/Dockerfile.ir @@ -47,19 +47,32 @@ xfonts-base \ xvfb \ zlib1g-dev" -RUN apt-get update && apt-get install -y ${BUILDDEPS} \ - && \ - # Install the R libraries - R -e "install.packages('tidyverse', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('data.table', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('RSQLite', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('remotes', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('reticulate', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('igraph', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('plotly', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('rgl', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('hdf5r', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - R -e "install.packages('rJava', repos='https://cloud.r-project.org', dependencies=TRUE)" && \ - apt-get clean && \ - apt-get remove --purge -y ${BUILDDEPS} && \ - rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Use Posit Package Manager for precompiled Linux binaries +ENV CRAN_REPO="https://packagemanager.posit.co/cran/__linux__/bullseye/latest" + +# R packages to install +ENV R_PACKAGES="\ +tidyverse \ +data.table \ +RSQLite \ +remotes \ +reticulate \ +igraph \ +plotly \ +rgl \ +hdf5r \ +rJava" + +RUN apt-get update \ + && apt-get install -y ${BUILDDEPS} \ + && R -e " \ + options(Ncpus = 4); \ + install.packages( \ + strsplit(Sys.getenv('R_PACKAGES'), '\\\\s+')[[1]], \ + repos = Sys.getenv('CRAN_REPO'), \ + dependencies = TRUE \ + ) \ + " \ + && apt-get clean \ + && apt-get remove --purge -y ${BUILDDEPS} \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* From 3f01a394ad8039e931fc660d3b25696eec971e42 Mon Sep 17 00:00:00 2001 From: Michal Baumgartner Date: Fri, 23 Jan 2026 16:00:36 +0100 Subject: [PATCH 2/2] fix: Add HTTPUserAgent to actually download precompiled packages --- ir/ir-with-libs/Dockerfile.ir | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ir/ir-with-libs/Dockerfile.ir b/ir/ir-with-libs/Dockerfile.ir index 6511694..f9aa872 100644 --- a/ir/ir-with-libs/Dockerfile.ir +++ b/ir/ir-with-libs/Dockerfile.ir @@ -66,7 +66,10 @@ rJava" RUN apt-get update \ && apt-get install -y ${BUILDDEPS} \ && R -e " \ - options(Ncpus = 4); \ + options( \ + Ncpus = 4, \ + HTTPUserAgent = sprintf('R/%s R (%s)', getRversion(), paste(getRversion(), R.version['platform'], R.version['arch'], R.version['os'])) \ + ); \ install.packages( \ strsplit(Sys.getenv('R_PACKAGES'), '\\\\s+')[[1]], \ repos = Sys.getenv('CRAN_REPO'), \