Skip to content
Snippets Groups Projects
latest.Dockerfile 1.38 KiB
Newer Older
ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
Olivier Benz's avatar
Olivier Benz committed
FROM ${BUILD_ON_IMAGE}:${R_VERSION}
ARG NCPUS=1

Olivier Benz's avatar
Olivier Benz committed
ARG DEBIAN_FRONTEND=noninteractive
Olivier Benz's avatar
Olivier Benz committed

ARG BUILD_ON_IMAGE
ARG BUILD_START
ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
    BUILD_DATE=${BUILD_START}
USER root

Olivier Benz's avatar
Olivier Benz committed
RUN apt-get update \
  && apt-get -y install --no-install-recommends \
Olivier Benz's avatar
Olivier Benz committed
    cmake \
    default-libmysqlclient-dev \
Olivier Benz's avatar
Olivier Benz committed
    #libxml2-dev \
    libfribidi-dev \
    libgit2-dev \
    libharfbuzz-dev \
    libpq-dev \
    libsasl2-dev \
    libsqlite3-dev \
    libssh2-1-dev \
    #libtiff-dev \
Olivier Benz's avatar
Olivier Benz committed
    libxtst6 \
    unixodbc-dev \
  && install2.r --error --skipinstalled -n $NCPUS BiocManager \
  && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
Olivier Benz's avatar
Olivier Benz committed
    tidyverse \
    dplyr \
    devtools \
    formatR \
Olivier Benz's avatar
Olivier Benz committed
  ## dplyr database backends
  && install2.r --error --skipinstalled -n $NCPUS \
Olivier Benz's avatar
Olivier Benz committed
    arrow \
Olivier Benz's avatar
Olivier Benz committed
    duckdb \
Olivier Benz's avatar
Olivier Benz committed
    fst \
  ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
  && apt-get -y purge libharfbuzz-dev \
  && apt-get -y autoremove \
  && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
Olivier Benz's avatar
Olivier Benz committed
  ## Strip libraries of binary packages installed from P3M
  && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
  && strip ${RLS}/*/libs/*.so \
Olivier Benz's avatar
Olivier Benz committed
  ## Clean up
  && rm -rf /tmp/* \
  && rm -rf /var/lib/apt/lists/*

## Switch back to ${NB_USER} to avoid accidental container runs as root
USER ${NB_USER}