Skip to content

Unable to build terra-docker-r image #477

@AMCalejandro

Description

@AMCalejandro

Hi,

I am unable to build the Docker image using the latest version of the Dockerfile you have in this remote
The issue seems to be related to this Dockerfile actually getting R=3.16 and not R=4.1 as speicified in the README

Dockerfile

ROM us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.1.3

USER root

COPY scripts $JUPYTER_HOME/scripts

# Add env vars to identify binary package installation
ENV TERRA_R_PLATFORM="terra-jupyter-r-2.2.4"
ENV TERRA_R_PLATFORM_BINARY_VERSION=4.3

# Install protobuf 3.20.3. Note this version comes from base deep learning image. Use `conda list` to see what's installed
RUN cd /tmp \
  && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-all-3.20.3.tar.gz \
	&& tar -xvzf protobuf-all-3.20.3.tar.gz \
	&& cd protobuf-3.20.3/ \
	&& ./configure \
	&& make \
	&& make check \
	&& sudo make install \
	&& sudo ldconfig \
	&& rm -rf /tmp/protobuf-* \
	&& cd ~

# Add R kernel
RUN find $JUPYTER_HOME/scripts -name '*.sh' -type f | xargs chmod +x \
 && $JUPYTER_HOME/scripts/kernel/kernelspec.sh $JUPYTER_HOME/scripts/kernel /opt/conda/share/jupyter/kernels

# https://cran.r-project.org/bin/linux/ubuntu/README.html
RUN apt-get update \
    && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 \
    && add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/' \
    && apt-get install -yq --no-install-recommends apt-transport-https \
    && apt update \
    && apt install -yq --no-install-recommends \
	apt-utils \
	libssh2-1-dev \
	libssl-dev \
	libcurl4-gnutls-dev \
	libgit2-dev \
	libxml2-dev \
	libgfortran-7-dev \
	r-base-dev \
	r-base-core \
	# This section installs libraries
	libnetcdf-dev \
	libhdf5-serial-dev \
	libfftw3-dev \
	libopenbabel-dev \
	libopenmpi-dev \
	libexempi3 \
	libgdal-dev \
	libcairo2-dev \
	libtiff5-dev \
	libgsl0-dev \
	libgtk2.0-dev \
	libgl1-mesa-dev \
	libglu1-mesa-dev \
	libgmp3-dev \
	libhdf5-dev \
	libncurses-dev \
	libxpm-dev \
	libv8-3.14-dev \
	libgtkmm-2.4-dev \
	libmpfr-dev \
	libudunits2-dev \
	libmodule-build-perl \
	libapparmor-dev \
	libgeos-dev \
	librdf0-dev \
	libmagick++-dev \
	libsasl2-dev \
	libpoppler-cpp-dev \
	libpq-dev \
	libperl-dev \
	libgfortran5 \
	libarchive-extract-perl \
	libfile-copy-recursive-perl \
	libcgi-pm-perl \
	libdbi-perl \
	libdbd-mysql-perl \
	libxml-simple-perl \
	sqlite \
	mpi-default-bin \
	openmpi-common \
	tcl8.5-dev \
	imagemagick \
	tabix \
	ggobi \
	graphviz \
	jags \
	xfonts-100dpi \
	xfonts-75dpi \
	biber \
	libzmq3-dev \
	libsbml5-dev \
	biber \
    ocl-icd-opencl-dev \
    libeigen3-dev \
    mono-runtime \
	cmake \
 	libarchive-dev \
    && ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.so /usr/lib/x86_64-linux-gnu/libgfortran.so \
    && ln -s /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so /usr/lib/x86_64-linux-gnu/libstdc++.so \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# DEVEL: Add sys env variables to DEVEL image
# Variables in Renviron.site are made available inside of R.
# Add libsbml CFLAGS
ENV LIBSBML_CFLAGS="-I/usr/include"
ENV LIBSBML_LIBS="-lsbml"
RUN echo 'export LIBSBML_CFLAGS="-I/usr/include"' >> /etc/profile \
    && echo 'export LIBSBML_LIBS="-lsbml"' >> /etc/profile

## set pip3 to run as root, not as jupyter user
ENV PIP_USER=false

## Install python packages needed for a few Bioc packages
RUN pip3 -V \
    && pip3 install --upgrade pip \
    && pip3 install cwltool \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN R -e 'install.packages("BiocManager")' \
    ## check version
    && R -e 'BiocManager::install(version="3.18", ask=FALSE)' \
    && R -e 'BiocManager::install(c( \
    "boot", \
    "class", \
    "cluster", \
    "codetools", \
    "foreign", \
    "kernsmooth", \
    "lattice", \
    "mass", \
    "Matrix", \
    "mgcv", \
    "nlme", \
    "nnet", \
    "rpart", \
    "spatial", \
    "survival", \
    # Jupyter notebook essentials
    "IRdisplay",  \
    "IRkernel", \
    # User oriented packages
    "reticulate", \
    "remotes", \
    "devtools", \
    "pbdZMQ", \
    "uuid", \
    "lme4", \
    "lmerTest", \
    "data.table", \
    "tidyr", \
    "dplyr", \
    "ggplot2"))' \
    && R -e 'BiocManager::install("DataBiosphere/Ronaldo")'


## pip runs as jupyter user
ENV PIP_USER=true

RUN R -e 'IRkernel::installspec(user=FALSE)' \
    && chown -R $USER:users /usr/local/lib/R/site-library /home/jupyter

USER $USER

Command to run

docker build -t test  .

Output

[+] Building 1131.8s (6/13)                                                                                                                  
[+] Building 1132.0s (6/13)                                                                                                                  
[+] Building 1132.1s (6/13)                                                                                                                  
 => => transferring dockerfile: 4.29kB                                                                                                  0.0s
 => [internal] load .dockerignore                                                                                                       0.0s
[+] Building 1132.3s (6/13)                                                                                                                  
 => [internal] load metadata for us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.1.3                                                0.4s
 => [internal] load build context                                                                                                       0.0s
[+] Building 1520.2s (12/13)                                                                                                                 
 => [internal] load build definition from Dockerfile_w_Rinstalls                                                                        0.0s
 => => transferring dockerfile: 4.29kB                                                                                                  0.0s
 => [internal] load .dockerignore                                                                                                       0.0s
 => => transferring context: 2B                                                                                                         0.0s
 => [internal] load metadata for us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.1.3                                                0.4s
 => [internal] load build context                                                                                                       0.0s
 => => transferring context: 854B                                                                                                       0.0s
 => CACHED [1/9] FROM us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:1.1.3@sha256:d1758af3b27f9ec97e37855538acd0ac074120a1b4a3cbed0  0.0s
 => [2/9] COPY scripts /etc/jupyter/scripts                                                                                             0.0s 
 => [3/9] RUN cd /tmp   && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protobuf-all-3.20.3.tar.gz  &  1179.4s 
 => [4/9] RUN find /etc/jupyter/scripts -name '*.sh' -type f | xargs chmod +x  && /etc/jupyter/scripts/kernel/kernelspec.sh /etc/jupyt  0.4s 
 => [5/9] RUN apt-get update     && apt-get install -yq --no-install-recommends apt-transport-https     && apt update     && apt ins  318.0s 
 => [6/9] RUN echo 'export LIBSBML_CFLAGS="-I/usr/include"' >> /etc/profile     && echo 'export LIBSBML_LIBS="-lsbml"' >> /etc/profile  0.4s
 => [7/9] RUN pip3 -V     && pip3 install --upgrade pip     && pip3 install cwltool     && apt-get clean     && rm -rf /var/lib/apt/l  17.1s
 => ERROR [8/9] RUN R -e 'install.packages("BiocManager")'     && R -e 'BiocManager::install(version="3.18", ask=FALSE)'     && R -e '  4.1s
------
 > [8/9] RUN R -e 'install.packages("BiocManager")'     && R -e 'BiocManager::install(version="3.18", ask=FALSE)'     && R -e 'BiocManager::install(c(     "boot",     "class",     "cluster",     "codetools",     "foreign",     "kernsmooth",     "lattice",     "mass",     "Matrix",     "mgcv",     "nlme",     "nnet",     "rpart",     "spatial",     "survival",     "IRdisplay",      "IRkernel",     "reticulate",     "remotes",     "devtools",     "pbdZMQ",     "uuid",     "lme4",     "lmerTest",     "data.table",     "tidyr",     "dplyr",     "ggplot2"))'     && R -e 'BiocManager::install("DataBiosphere/Ronaldo")':
#0 0.388 
#0 0.388 R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
#0 0.388 Copyright (C) 2020 The R Foundation for Statistical Computing
#0 0.388 Platform: x86_64-pc-linux-gnu (64-bit)
#0 0.388 
#0 0.389 R is free software and comes with ABSOLUTELY NO WARRANTY.
#0 0.389 You are welcome to redistribute it under certain conditions.
#0 0.389 Type 'license()' or 'licence()' for distribution details.
#0 0.389 
#0 0.389   Natural language support but running in an English locale
#0 0.389 
#0 0.389 R is a collaborative project with many contributors.
#0 0.389 Type 'contributors()' for more information and
#0 0.389 'citation()' on how to cite R or R packages in publications.
#0 0.389 
#0 0.389 Type 'demo()' for some demos, 'help()' for on-line help, or
#0 0.389 'help.start()' for an HTML browser interface to help.
#0 0.389 Type 'q()' to quit R.
#0 0.389 
#0 0.465 > install.packages("BiocManager")
#0 0.468 Installing package into ‘/usr/local/lib/R/site-library’
#0 0.468 (as ‘lib’ is unspecified)
#0 1.672 trying URL 'https://cloud.r-project.org/src/contrib/BiocManager_1.30.22.tar.gz'
#0 1.967 Content type 'application/x-gzip' length 582690 bytes (569 KB)
#0 1.967 ==================================================
#0 2.189 downloaded 569 KB
#0 2.189 
#0 2.351 * installing *source* package ‘BiocManager’ ...
#0 2.354 ** package ‘BiocManager’ successfully unpacked and MD5 sums checked
#0 2.354 ** using staged installation
#0 2.364 ** R
#0 2.369 ** inst
#0 2.370 ** byte-compile and prepare package for lazy loading
#0 2.755 ** help
#0 2.776 *** installing help indices
#0 2.790 ** building package indices
#0 2.800 ** installing vignettes
#0 2.802 ** testing if installed package can be loaded from temporary location
#0 3.231 ** testing if installed package can be loaded from final location
#0 3.676 ** testing if installed package keeps a record of temporary installation path
#0 3.677 * DONE (BiocManager)
#0 3.683 
#0 3.683 The downloaded source packages are in
#0 3.683        ‘/tmp/RtmpkJT8fH/downloaded_packages’
#0 3.683 > 
#0 3.683 > 
#0 3.731 
#0 3.731 R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
#0 3.731 Copyright (C) 2020 The R Foundation for Statistical Computing
#0 3.731 Platform: x86_64-pc-linux-gnu (64-bit)
#0 3.731 
#0 3.731 R is free software and comes with ABSOLUTELY NO WARRANTY.
#0 3.731 You are welcome to redistribute it under certain conditions.
#0 3.731 Type 'license()' or 'licence()' for distribution details.
#0 3.731 
#0 3.731   Natural language support but running in an English locale
#0 3.731 
#0 3.731 R is a collaborative project with many contributors.
#0 3.731 Type 'contributors()' for more information and
#0 3.731 'citation()' on how to cite R or R packages in publications.
#0 3.731 
#0 3.731 Type 'demo()' for some demos, 'help()' for on-line help, or
#0 3.731 'help.start()' for an HTML browser interface to help.
#0 3.731 Type 'q()' to quit R.
#0 3.731 
#0 3.791 > BiocManager::install(version="3.18", ask=FALSE)
#0 4.107 Error: Bioconductor version '3.18' requires R version '4.3'; use `version = '3.10'`
#0 4.107   with R version 3.6; see https://bioconductor.org/install
#0 4.107 Execution halted
------
Dockerfile_w_Rinstalls:125
--------------------
 124 |     
 125 | >>> RUN R -e 'install.packages("BiocManager")' \
 126 | >>>     ## check version
 127 | >>>     && R -e 'BiocManager::install(version="3.18", ask=FALSE)' \
 128 | >>>     && R -e 'BiocManager::install(c( \
 129 | >>>     "boot", \
 130 | >>>     "class", \
 131 | >>>     "cluster", \
 132 | >>>     "codetools", \
 133 | >>>     "foreign", \
 134 | >>>     "kernsmooth", \
 135 | >>>     "lattice", \
 136 | >>>     "mass", \
 137 | >>>     "Matrix", \
 138 | >>>     "mgcv", \
 139 | >>>     "nlme", \
 140 | >>>     "nnet", \
 141 | >>>     "rpart", \
 142 | >>>     "spatial", \
 143 | >>>     "survival", \
 144 | >>>     # Jupyter notebook essentials
 145 | >>>     "IRdisplay",  \
 146 | >>>     "IRkernel", \
 147 | >>>     # User oriented packages
 148 | >>>     "reticulate", \
 149 | >>>     "remotes", \
 150 | >>>     "devtools", \
 151 | >>>     "pbdZMQ", \
 152 | >>>     "uuid", \
 153 | >>>     "lme4", \
 154 | >>>     "lmerTest", \
 155 | >>>     "data.table", \
 156 | >>>     "tidyr", \
 157 | >>>     "dplyr", \
 158 | >>>     "ggplot2"))' \
 159 | >>>     && R -e 'BiocManager::install("DataBiosphere/Ronaldo")'
 160 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c R -e 'install.packages(\"BiocManager\")'     && R -e 'BiocManager::install(version=\"3.18\", ask=FALSE)'     && R -e 'BiocManager::install(c(     \"boot\",     \"class\",     \"cluster\",     \"codetools\",     \"foreign\",     \"kernsmooth\",     \"lattice\",     \"mass\",     \"Matrix\",     \"mgcv\",     \"nlme\",     \"nnet\",     \"rpart\",     \"spatial\",     \"survival\",     \"IRdisplay\",      \"IRkernel\",     \"reticulate\",     \"remotes\",     \"devtools\",     \"pbdZMQ\",     \"uuid\",     \"lme4\",     \"lmerTest\",     \"data.table\",     \"tidyr\",     \"dplyr\",     \"ggplot2\"))'     && R -e 'BiocManager::install(\"DataBiosphere/Ronaldo\")'" did not complete successfully: exit code: 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions