Skip to content
Snippets Groups Projects
Forked from an inaccessible project.
Dockerfile 2.16 KiB
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
# 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

USER root
RUN apt-get update && \
  apt-get install -y --no-install-recommends \
  apt-utils \
  # Geckodriver needed for Selenium
  firefox-geckodriver 
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

# 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

########################################################
# Install renku from pypi or from github if it's a dev version

RUN if [ -n "$RENKU_VERSION" ] ; then \
        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