Skip to content

Commit

Permalink
Merge pull request #5945 from shaneknapp/upgrade-r
Browse files Browse the repository at this point in the history
[DH-337] upgrade R, R studio to latest version on hubs
  • Loading branch information
shaneknapp authored Aug 12, 2024
2 parents 18ed7e9 + 0e87c49 commit 7337e4a
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 68 deletions.
88 changes: 38 additions & 50 deletions deployments/biology/image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM buildpack-deps:focal-scm
FROM buildpack-deps:jammy-scm

ENV TZ=America/Los_Angeles
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
Expand Down Expand Up @@ -29,22 +29,11 @@ RUN apt-get update -qq --yes > /dev/null && \
apt-get install --yes -qq \
libpython2.7 > /dev/null

## libraries required for mothur
## libreadline6 required
#RUN apt-get update -qq --yes > /dev/null && \
# apt-get install --yes -qq \
# libreadline6-dev > /dev/null

## library required for fast-PCA & https://github.com/DReichLab/EIG
RUN apt-get update -qq --yes && \
apt-get install --yes --no-install-recommends -qq \
libgsl-dev >/dev/null

## library required for running ccb293 package qiime
#RUN apt-get update -qq --yes > /dev/null && \
# apt-get install --yes -qq \
# tzdata > /dev/null

# Install these without 'recommended' packages to keep image smaller.
# Useful utils that folks sort of take for granted
RUN apt-get update -qq --yes && \
Expand All @@ -64,25 +53,48 @@ RUN apt-get update -qq --yes && \
RUN echo "${LC_ALL} UTF-8" > /etc/locale.gen && \
locale-gen

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/" > /etc/apt/sources.list.d/cran.list
# Needed by RStudio
RUN apt-get update -qq --yes && \
apt-get install --yes --no-install-recommends -qq \
psmisc \
sudo \
libapparmor1 \
lsb-release \
libclang-dev \
libpq5 > /dev/null

# Needed by many R libraries
# Picked up from https://github.com/rocker-org/rocker/blob/9dc3e458d4e92a8f41ccd75687cd7e316e657cc0/r-rspm/focal/Dockerfile
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libgdal-dev \
libgeos3.10.2 \
libproj22 \
libudunits2-0 \
libxml2 > /dev/null

# Install R packages
# Our pre-built R packages from rspm are built against system libs in focal
# rstan takes forever to compile from source, and needs libnodejs
# So we install older (10.x) nodejs from apt rather than newer from conda
ENV R_VERSION=4.1.2-1.2004.0
# Install R.
# These packages must be installed into the base stage since they are in system
# paths rather than /srv.
# Pre-built R packages from rspm are built against system libs in jammy.
ENV R_VERSION=4.4.1-1.2204.0
ENV LITTLER_VERSION=0.3.19-1.2204.0
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/" > /etc/apt/sources.list.d/cran.list
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" > /etc/apt/sources.list.d/cran.list
RUN curl --silent --location --fail https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc > /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
RUN apt-get update -qq --yes > /dev/null && \
apt-get install --yes -qq \
r-base-core=${R_VERSION} \
r-base-dev=${R_VERSION} \
r-cran-littler=0.3.14-1.2004.0 \
libglpk-dev \
libzmq5 \
nodejs npm > /dev/null
r-base-core=${R_VERSION} \
r-base-dev=${R_VERSION} \
littler=${LITTLER_VERSION} \
libglpk-dev \
libzmq5 \
nodejs npm > /dev/null

ENV RSTUDIO_URL=https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2024.04.2-764-amd64.deb
RUN curl --silent --location --fail ${RSTUDIO_URL} > /tmp/rstudio.deb && \
apt install --no-install-recommends --yes /tmp/rstudio.deb && \
rm /tmp/rstudio.deb

# Install desktop packages
RUN apt-get update -qq --yes > /dev/null && \
Expand Down Expand Up @@ -123,30 +135,6 @@ RUN apt-get update -qq --yes > /dev/null && \

WORKDIR /home/jovyan

# Needed by RStudio
RUN apt-get update -qq --yes && \
apt-get install --yes --no-install-recommends -qq \
psmisc \
sudo \
libapparmor1 \
lsb-release \
libclang-dev \
libpq5 > /dev/null

ENV RSTUDIO_URL https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.1-372-amd64.deb
RUN curl --silent --location --fail ${RSTUDIO_URL} > /tmp/rstudio.deb && \
dpkg -i /tmp/rstudio.deb && \
rm /tmp/rstudio.deb

# Needed by many R libraries
# Picked up from https://github.com/rocker-org/rocker/blob/9dc3e458d4e92a8f41ccd75687cd7e316e657cc0/r-rspm/focal/Dockerfile
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libgdal26 \
libgeos-3.8.0 \
libproj15 \
libudunits2-0 \
libxml2 > /dev/null
# R_LIBS_USER is set by default in /etc/R/Renviron, which RStudio loads.
# We uncomment the default, and set what we wanna - so it picks up
# the packages we install. Without this, RStudio doesn't see the packages
Expand Down
4 changes: 2 additions & 2 deletions deployments/biology/image/Rprofile.site
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Use RStudio's CRAN mirror to get binary packages
# 'latest' just means it has all available versions.
# We can specify version numbers in devtools::install_version
options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"))
options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/jammy/latest"))

# RStudio's CRAN mirror needs this to figure out which binary package to serve.
# If not set properly, it will just serve up source packages
# Quite hilarious, IMO.
# See https://docs.rstudio.com/rspm/admin/binaries.html
options(HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version$platform, R.version$arch, R.version$os)))
options(HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version$platform, R.version$arch, R.version$os)))
2 changes: 1 addition & 1 deletion deployments/biology/image/rsession.conf
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Use binary packages!
r-cran-repos=https://packagemanager.rstudio.com/all/__linux__/focal/latest
r-cran-repos=https://packagemanager.rstudio.com/all/__linux__/jammy/latest
9 changes: 5 additions & 4 deletions deployments/datahub/images/default/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,17 @@ RUN install -d -o ${NB_USER} -g ${NB_USER} ${R_LIBS_USER}
# These packages must be installed into the base stage since they are in system
# paths rather than /srv.
# Pre-built R packages from rspm are built against system libs in jammy.
ENV R_VERSION=4.3.2-1.2204.0
ENV LITTLER_VERSION=0.3.18-2.2204.0
#ENV R_VERSION=4.3.2-1.2204.0
#ENV LITTLER_VERSION=0.3.18-2.2204.0
ENV R_VERSION=4.4.1-1.2204.0
ENV LITTLER_VERSION=0.3.19-1.2204.0
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" > /etc/apt/sources.list.d/cran.list
RUN curl --silent --location --fail https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc > /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
RUN apt-get update --yes > /dev/null && \
apt-get install --yes -qq r-base-core=${R_VERSION} r-base-dev=${R_VERSION} littler=${LITTLER_VERSION} > /dev/null

#ENV RSTUDIO_URL https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2023.06.0-421-amd64.deb
ENV RSTUDIO_URL https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2023.12.0-369-amd64.deb
ENV RSTUDIO_URL=https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2024.04.2-764-amd64.deb
RUN curl --silent --location --fail ${RSTUDIO_URL} > /tmp/rstudio.deb && \
apt install --no-install-recommends --yes /tmp/rstudio.deb && \
rm /tmp/rstudio.deb
Expand Down
3 changes: 1 addition & 2 deletions deployments/datahub/images/default/Rprofile.site
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/jammy
# below sets it to be binary. This may improve image build times.
# If it works, it'd be better to dynamically set the R version as above, and
# also the RStudio Server version if possible.
options(HTTPUserAgent = "RStudio Server (2023.12.0.369); R (4.3.2 x86_64-pc-linux-gnu x86_64 linux-gnu)")

options(HTTPUserAgent = "RStudio Server (2024.04.2.764); R (4.4.1 x86_64-pc-linux-gnu x86_64 linux-gnu)")

## Source extra Rprofile files.
#
Expand Down
6 changes: 3 additions & 3 deletions deployments/dev/images/default/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ RUN apt-get -qq update --yes && \
# These packages must be installed into the base stage since they are in system
# paths rather than /srv.
# Pre-built R packages from rspm are built against system libs in jammy.
ENV R_VERSION=4.3.2-1.2204.0
ENV LITTLER_VERSION=0.3.18-2.2204.0
ENV R_VERSION=4.4.1-1.2204.0
ENV LITTLER_VERSION=0.3.19-1.2204.0
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/" > /etc/apt/sources.list.d/cran.list
RUN curl --silent --location --fail https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc > /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
Expand All @@ -45,7 +45,7 @@ RUN apt-get update -qq --yes > /dev/null && \
r-base-dev=${R_VERSION} \
littler=${LITTLER_VERSION} > /dev/null

ENV RSTUDIO_URL https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2023.06.0-421-amd64.deb
ENV RSTUDIO_URL=https://download2.rstudio.org/server/jammy/amd64/rstudio-server-2024.04.2-764-amd64.deb
RUN curl --silent --location --fail ${RSTUDIO_URL} > /tmp/rstudio.deb && \
apt install --no-install-recommends --yes /tmp/rstudio.deb && \
rm /tmp/rstudio.deb
Expand Down
2 changes: 1 addition & 1 deletion deployments/dev/images/default/Rprofile.site
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ options(
options(
HTTPUserAgent = sprintf(
"RStudio Server (%s); R (%s)",
"2022.7.1.554",
"2024.04.2.764",
paste(getRversion(), R.version$platform, R.version$arch, R.version$os)
)
)
2 changes: 1 addition & 1 deletion deployments/ischool/image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM rocker/geospatial:4.3.1
FROM rocker/geospatial:4.4.1

ENV NB_USER rstudio
ENV NB_UID 1000
Expand Down
2 changes: 1 addition & 1 deletion deployments/publichealth/image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/rocker-org/geospatial:4.3.2
FROM ghcr.io/rocker-org/geospatial:4.4.1

ENV NB_USER rstudio
ENV NB_UID 1000
Expand Down
4 changes: 2 additions & 2 deletions deployments/shiny/image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM rocker/geospatial:4.3.2
FROM rocker/geospatial:4.4.1

ENV NB_USER rstudio
ENV NB_UID 1000
Expand Down Expand Up @@ -55,7 +55,7 @@ RUN apt-get update > /dev/null && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

ENV SHINY_SERVER_URL https://download3.rstudio.org/ubuntu-18.04/x86_64/shiny-server-1.5.21.1012-amd64.deb
ENV SHINY_SERVER_URL https://download3.rstudio.org/ubuntu-18.04/x86_64/shiny-server-1.5.22.1017-amd64.deb
RUN curl --silent --location --fail ${SHINY_SERVER_URL} > /tmp/shiny-server.deb && \
apt install --no-install-recommends --yes /tmp/shiny-server.deb && \
rm /tmp/shiny-server.deb
Expand Down
2 changes: 1 addition & 1 deletion deployments/stat20/image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM rocker/geospatial:4.3.2
FROM rocker/geospatial:4.4.1
# https://github.com/rocker-org/rocker-versioned2/wiki/geospatial_e06f866673fa

ENV NB_USER rstudio
Expand Down

0 comments on commit 7337e4a

Please sign in to comment.