Skip to content
Snippets Groups Projects
Dockerfile 2.16 KiB
Newer Older
Simon van Hemert's avatar
Simon van Hemert committed
ARG RENKU_BASE_IMAGE=renku/renkulab-py:3.7-0.7.2
FROM ${RENKU_BASE_IMAGE}

# FROM renku/renkulab-py:3.7-renku0.15.1-0.6.3
Simon van Hemert's avatar
Simon van Hemert committed
# see https://github.com/SwissDataScienceCenter/renkulab-docker
# to swap this image for the latest version available

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

# Uncomment and adapt if your R or python packages require extra linux (ubuntu) software
# e.g. the following installs apt-utils and vim; each pkg on its own line, all lines
# except for the last end with backslash '\' to continue the RUN line
Simon van Hemert's avatar
Simon van Hemert committed

Simon van Hemert's avatar
Simon van Hemert committed
USER root
RUN apt-get update && \
  apt-get install -y --no-install-recommends \
Simon van Hemert's avatar
Simon van Hemert committed
  apt-utils \
Simon van Hemert's avatar
Simon van Hemert committed
  # Geckodriver needed for Selenium
Simon van Hemert's avatar
Simon van Hemert committed
  firefox-geckodriver 
Simon van Hemert's avatar
Simon van Hemert committed
USER ${NB_USER}

# install the python dependencies
COPY requirements.txt environment.yml /tmp/
RUN conda env update -q -f /tmp/environment.yml && \
    /opt/conda/bin/pip install -r /tmp/requirements.txt && \
    conda clean -y --all && \
    conda env export -n "root"
    
# Tensorboard extension
RUN jupyter labextension install jupyterlab_tensorboard && \
    pip install jupyter-tensorboard==0.1.10
Simon van Hemert's avatar
Simon van Hemert committed
# RENKU_VERSION determines the version of the renku CLI
# that will be used in this image. To find the latest version,
# visit https://pypi.org/project/renku/#history.
ARG RENKU_VERSION=0.16.1
########################################################
Pascal Baumann's avatar
Pascal Baumann committed
# Install renku from pypi or from github if it's a dev version
Simon van Hemert's avatar
Simon van Hemert committed

RUN if [ -n "$RENKU_VERSION" ] ; then \
Pascal Baumann's avatar
Pascal Baumann committed
        currentversion=$(pipx list | sed -n "s/^\s*package\srenku\s\([^,]\+\),.*$/\1/p") ; \
        if [ "$RENKU_VERSION" != "$currentversion" ] ; then \
            pipx uninstall renku ; \
            /home/jovyan/.local/pipx/shared/bin/pip install setuptools==57.5.0; \
            gitversion=$(echo "$RENKU_VERSION" | sed -n "s/^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\(\.dev[[:digit:]]\+\)*\(+g\([a-f0-9]\+\)\)*\(+dirty\)*$/\3/p"); \
            if [ -n "$gitversion" ] ; then \
                pipx install --force "git+https://github.com/SwissDataScienceCenter/renku-python.git@$gitversion" ;\
            else \
                pipx install --force renku==${RENKU_VERSION} ;\
            fi \
        fi \
    fi