Skip to content
Dockerfile 3.72 KiB
Newer Older
Philippe Grosjean's avatar
Philippe Grosjean committed
ARG BASE_IMAGE=rrrrrok/renkulab-r-geospatial:4.0.5
Philippe Grosjean's avatar
Philippe Grosjean committed
FROM $BASE_IMAGE

LABEL maintainer="Philippe Grosjean <phgrosjean@sciviews.org>"

Philippe Grosjean's avatar
Philippe Grosjean committed
USER root

Philippe Grosjean's avatar
Philippe Grosjean committed
ENV NB_USER rstudio
ENV NB_UID 1000
ENV NB_GID 1000
ENV VENV_DIR /srv/venv
ENV HOME /home/${NB_USER}
ENV SHELL bash
ENV CONDA_PATH /opt/conda

# prepend conda and local/bin to PATH
Philippe Grosjean's avatar
Philippe Grosjean committed
ENV PATH ${HOME}/.local/bin:${CONDA_PATH}/bin:$PATH

RUN apt-get update --fix-missing && \
    apt-get install -yq --no-install-recommends \
Philippe Grosjean's avatar
Philippe Grosjean committed
    # for mongolite
Philippe Grosjean's avatar
Philippe Grosjean committed
    libsasl2-dev \
Philippe Grosjean's avatar
Philippe Grosjean committed
    # for keyring
Philippe Grosjean's avatar
Philippe Grosjean committed
    #libsecret-1-dev \
Philippe Grosjean's avatar
Philippe Grosjean committed
    # added for SciViews Box/BioDataScience
    hunspell-en-us \
    hunspell-en-gb \
Philippe Grosjean's avatar
Philippe Grosjean committed
    # does not work well...why?
    #hunspell-fr-classical \
Philippe Grosjean's avatar
Philippe Grosjean committed
    xdg-utils \
Philippe Grosjean's avatar
Philippe Grosjean committed
    nano && \
    apt-get purge && \
    apt-get clean && \
    apt autoremove --yes && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    rm -rf /var/lib/apt/lists/* && \
    # reset original user:group for site-library so that rstudio user is forced
    # to install its R packages in ~/... instead from within RStudio
    chown root:staff /usr/local/lib/R/site-library
Philippe Grosjean's avatar
Philippe Grosjean committed
COPY .config/dictionaries/* /usr/share/hunspell/
RUN mkdir -p /home/rstudio/.config/rstudio/dictionaries && \
    chown 1000:1000 /home/rstudio/.config/rstudio/dictionaries && \
    mkdir -p /home/rstudio/.config/rstudio/dictionaries/languages-system && \
    chown 1000:1000 /home/rstudio/.config/rstudio/dictionaries/languages-system && \
    cp /usr/share/hunspell/en_US.aff /home/rstudio/.config/rstudio/dictionaries/languages-system/en_US.aff && \
    cp /usr/share/hunspell/en_US.dic /home/rstudio/.config/rstudio/dictionaries/languages-system/en_US.dic && \
    cp /usr/share/hunspell/en_US.dic_delta /home/rstudio/.config/rstudio/dictionaries/languages-system/en_US.dic_delta && \
    cp /usr/share/hunspell/en_GB.aff /home/rstudio/.config/rstudio/dictionaries/languages-system/en_GB.aff && \
    cp /usr/share/hunspell/en_GB.dic /home/rstudio/.config/rstudio/dictionaries/languages-system/en_GB.dic && \
    cp /usr/share/hunspell//en_GB.dic_delta /home/rstudio/.config/rstudio/dictionaries/languages-system/en_GB.dic_delta && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    #cp /usr/share/hunspell/fr.aff /home/rstudio/.config/rstudio/dictionaries/languages-system/fr_FR.aff && \
    #cp /usr/share/hunspell/fr.dic /home/rstudio/.config/rstudio/dictionaries/languages-system/fr_FR.dic && \
    curl -sL https://filedn.com/lzGVgfOGxb6mHFQcRn9ueUb/svbox2021/files/fr_FR.aff > /home/rstudio/.config/rstudio/dictionaries/languages-system/fr_FR.aff && \
    curl -sL https://filedn.com/lzGVgfOGxb6mHFQcRn9ueUb/svbox2021/files/fr_FR.dic > /home/rstudio/.config/rstudio/dictionaries/languages-system/fr_FR.dic && \
    cp /usr/share/hunspell//fr_FR.dic_delta /home/rstudio/.config/rstudio/dictionaries/languages-system/fr_FR.dic_delta && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    # R packages required by functions defined in Rprofile.site.append
Philippe Grosjean's avatar
Philippe Grosjean committed
    R --quiet -e "install.packages(c('gert', 'fs'))" && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    curl -sL https://filedn.com/lzGVgfOGxb6mHFQcRn9ueUb/svbox2021/files/Rprofile.site.append >> $(R RHOME)/etc/Rprofile.site && \
    chown 1000:1000 /home/rstudio/.config/rstudio/dictionaries/languages-system/* && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    chown 1000:1000 /home/rstudio/.config/rstudio && \
    mkdir -p /etc/rstudio/snippets
Philippe Grosjean's avatar
Philippe Grosjean committed
COPY .config/snippets/r.snippets /etc/rstudio/snippets
COPY .config/rstudio-prefs.json /etc/rstudio

# Uncomment and adapt if code is to be included in the image
# COPY src /code/src

Philippe Grosjean's avatar
Philippe Grosjean committed
USER ${NB_USER}
# install R and python dependencies
Philippe Grosjean's avatar
Philippe Grosjean committed
COPY install.R /tmp/
Philippe Grosjean's avatar
Philippe Grosjean committed
COPY requirements.txt /tmp/
Philippe Grosjean's avatar
Philippe Grosjean committed
RUN R --quiet -f /tmp/install.R && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    R --quiet -e "install.packages('webshot'); webshot::install_phantomjs()" && \
Philippe Grosjean's avatar
Philippe Grosjean committed
    pip3 install -r /tmp/requirements.txt
Philippe Grosjean's avatar
Philippe Grosjean committed

COPY post-init.sh /post-init.sh
ENTRYPOINT [ "/tini", "--", "/entrypoint.sh" ]
CMD [ "jupyterhub-singleuser" ]
Philippe Grosjean's avatar
Philippe Grosjean committed
WORKDIR ${HOME}