Last active
June 27, 2018 14:04
-
-
Save elgalu/2f2633780fdcba36e2f6e11d182c8deb to your computer and use it in GitHub Desktop.
Troubleshooting UnsatisfiableError on mro and
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
active environment : None | |
user config file : /home/nbuser/.condarc | |
populated config files : /opt/conda/.condarc | |
conda version : 4.5.4 | |
conda-build version : not installed | |
python version : 3.6.5.final.0 | |
base environment : /opt/conda (writable) | |
channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 | |
https://repo.anaconda.com/pkgs/main/noarch | |
https://repo.anaconda.com/pkgs/free/linux-64 | |
https://repo.anaconda.com/pkgs/free/noarch | |
https://repo.anaconda.com/pkgs/r/linux-64 | |
https://repo.anaconda.com/pkgs/r/noarch | |
https://repo.anaconda.com/pkgs/pro/linux-64 | |
https://repo.anaconda.com/pkgs/pro/noarch | |
https://conda.anaconda.org/conda-forge/linux-64 | |
https://conda.anaconda.org/conda-forge/noarch | |
package cache : /opt/conda/pkgs | |
/home/nbuser/.conda/pkgs | |
envs directories : /opt/conda/envs | |
/home/nbuser/.conda/envs | |
platform : linux-64 | |
user-agent : conda/4.5.4 requests/2.19.1 CPython/3.6.5 Linux/4.16.14 ubuntu/18.04 glibc/2.27 | |
UID:GID : 1000:100 | |
netrc file : None | |
offline mode : False |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Ubuntu 18:04 | |
FROM registry.opensource.zalan.do/stups/ubuntu:latest | |
#============================== | |
# Locale and encoding settings | |
#============================== | |
# Note: LANGUAGE="${LANG_WHICH}_${LANG_WHERE}.${ENCODING}" | |
ENV LANG_WHICH="en" \ | |
LANG_WHERE="US" \ | |
LOCALE_TAG="en_US" \ | |
ENCODING="UTF-8" \ | |
LC_ALL="en_US.UTF-8" \ | |
LOCALE_ALL="en_US.UTF-8" \ | |
LANG="en_US.UTF-8" \ | |
LANGUAGE="en_US.UTF-8" \ | |
OS_LOCALE="en_US.UTF-8" \ | |
TZ="Europe/Berlin" \ | |
DEBIAN_FRONTEND="noninteractive" \ | |
DEBCONF_NONINTERACTIVE_SEEN="true" \ | |
CONDA_DIR="/opt/conda" \ | |
PATH="/opt/conda/bin:${PATH}" \ | |
SHELL="/bin/bash" \ | |
NB_USER="nbuser" \ | |
NB_UID="1000" \ | |
NB_GID="100" \ | |
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" \ | |
JAVA_OPTS="-XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1" \ | |
JAVA_OPTIONS="-XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1" \ | |
CLASSPATH="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/*:/usr/share/java/*" \ | |
XDG_CACHE_HOME="/home/nbuser/.cache/" \ | |
MPLBACKEND="Agg" | |
#-- +750 MB ; (885 MB) | |
RUN echo "" \ | |
&& echo "--------------------------" \ | |
&& echo "-- Upgrade: perl, curl ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
perl-base \ | |
curl \ | |
libcurl4 \ | |
libcurl4-openssl-dev \ | |
&& echo "----------------------------------------------------------------" \ | |
&& echo "-- Install: locale, language packs, locale and timezone setup..." \ | |
&& apt-qyy update && apt -qqy install \ | |
language-pack-en \ | |
tzdata \ | |
locales \ | |
&& locale-gen ${LANGUAGE} \ | |
&& dpkg-reconfigure --frontend noninteractive locales \ | |
&& echo "Setting time zone to '${TZ}'" \ | |
&& echo "${TZ}" > /etc/timezone \ | |
&& dpkg-reconfigure --frontend noninteractive tzdata \ | |
&& echo "${LANGUAGE} ${ENCODING}" > /etc/locale.gen && locale-gen \ | |
&& localedef -i ${LOCALE_TAG} -f ${ENCODING} ${LOCALE_ALL} \ | |
&& echo "--------------------------------------------" \ | |
&& echo "-- Install: build tools (gcc, make, etc) ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
build-essential \ | |
gcc-multilib \ | |
g++ \ | |
make \ | |
cmake \ | |
automake \ | |
pandoc \ | |
&& echo "---------------------------------------------------------" \ | |
&& echo "-- Install: wget packages and others (wget, curl, jq) ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
wget \ | |
curl \ | |
jq \ | |
unzip \ | |
bzip2 \ | |
sudo \ | |
locales \ | |
htop \ | |
iputils-ping \ | |
dnsutils \ | |
apt-utils \ | |
less \ | |
man \ | |
&& mkdir -p /usr/share/man/man1 \ | |
&& echo "-----------------------" \ | |
&& echo "-- Install: editors ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
emacs \ | |
jed \ | |
vim \ | |
nano \ | |
&& echo "-------------------" \ | |
&& echo "-- Install: git ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
git \ | |
&& echo "--------------------" \ | |
&& echo "-- Install: libs ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
libkrb5-dev \ | |
libavahi-compat-libdnssd-dev \ | |
libsm6 \ | |
libxext-dev \ | |
libxrender1 \ | |
lmodern \ | |
libssl-dev \ | |
libffi-dev \ | |
&& echo "-----------------------------------" \ | |
&& echo "-- Install: gpg, gnupg, openssh ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
gpgv \ | |
&& apt-qyy update && apt -qqy install \ | |
openssh-client \ | |
gpg \ | |
gpgconf \ | |
gnupg \ | |
gnupg2 \ | |
gnupg-utils \ | |
dirmngr \ | |
&& echo "-----------------------------------------------------------" \ | |
&& echo "-- Install: minimal python2 (30MB) for google-cloud-sdk ..." \ | |
&& apt-qyy update && apt -qqy install \ | |
libpython2.7-stdlib \ | |
libpython2.7-minimal \ | |
python2.7-minimal \ | |
python2.7 \ | |
&& echo "--------------------------" \ | |
&& echo "-- Install: tini (1MB) ..." \ | |
&& wget --progress=bar:force:noscroll "https://github.com/krallin/tini/releases/download/v0.18.0/tini" \ | |
&& echo "12d20136605531b09a2c2dac02ccee85e1b874eb322ef6baf7561cd93f93c855 *tini" | sha256sum -c - \ | |
&& mv tini /usr/local/bin/tini \ | |
&& chmod +x /usr/local/bin/tini \ | |
&& echo "----------------------------------" \ | |
&& echo "-- Install: GNU parallel (1MB) ..." \ | |
&& cd /tmp \ | |
&& wget -q "http://ftp.gnu.org/gnu/parallel/parallel-20180522.tar.bz2" \ | |
&& echo "eb017e2aea57464c3c91bd1120d419a303d2c204c35ec41fc156e6536ffa0cce parallel-20180522.tar.bz2" | sha256sum -c - \ | |
&& tar -xjf parallel-20180522.tar.bz2 \ | |
&& rm parallel-20180522.tar.bz2 \ | |
&& cd parallel-20180522 \ | |
&& ./configure \ | |
&& make \ | |
&& sudo make install \ | |
&& cd / && rm -rf /tmp/parallel-20180522 \ | |
&& parallel --version | grep 20180522 \ | |
&& echo "----------------------------------------------------------------------" \ | |
&& echo "-- Create nbuser user with UID=1000 and in the 'users' group (1MB) ..." \ | |
&& useradd ${NB_USER} \ | |
--uid ${NB_UID} \ | |
--gid ${NB_GID} \ | |
--shell /bin/bash \ | |
--create-home \ | |
&& usermod -a -G sudo ${NB_USER} \ | |
&& gpasswd -a ${NB_USER} video \ | |
&& echo "${NB_USER}:__emergency__access__" | chpasswd \ | |
&& echo 'ALL ALL = (ALL) NOPASSWD: ALL' >> /etc/sudoers \ | |
&& echo "----------------------------------------------------------" \ | |
&& echo "-- Make sure these dirs are writable by the 'users' group." \ | |
&& mkdir -p ${CONDA_DIR} \ | |
&& chown -R ${NB_USER}:${NB_GID} ${CONDA_DIR} \ | |
&& chown -R ${NB_USER}:${NB_GID} /home/nbuser | |
# NodeJS, Npm and Yarn (npm-like) package manager (This is not YARN scheduler!) | |
# | |
# Pinning setuptools==39.1.0 due to Tensorflow hard requirement: setuptools<=39.1.0 (from tf-nightly) | |
# | |
# before: 885 MB | |
# after: 1.22 GB => 1249 MB | |
# diff: +363 MB | |
RUN echo "" \ | |
&& echo "----------------------------------------------------------------------" \ | |
&& echo "-- Install conda giving full access to the default ${NB_USER} (365 MB)" \ | |
&& export MINICONDA_VERSION="latest" \ | |
&& cd /tmp \ | |
&& wget --progress=bar:force:noscroll "https://repo.continuum.io/miniconda/Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" \ | |
&& sudo /bin/bash Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh -f -b -p ${CONDA_DIR} \ | |
&& rm "Miniconda3-${MINICONDA_VERSION}-Linux-x86_64.sh" \ | |
&& ${CONDA_DIR}/bin/conda config --system --append channels conda-forge \ | |
&& ${CONDA_DIR}/bin/conda config --system --set auto_update_conda false \ | |
&& ${CONDA_DIR}/bin/conda config --system --set show_channel_urls true \ | |
&& ${CONDA_DIR}/bin/conda config --add channels r \ | |
&& ${CONDA_DIR}/bin/conda update --all --quiet --yes \ | |
&& ${CONDA_DIR}/bin/conda update -n base conda --yes \ | |
&& echo "------------------------------------------------" \ | |
&& echo "-- Conda Install: Python 3.6 , NodeJS 8 (30 MB) " \ | |
&& conda install --yes \ | |
'python=3.6.5' \ | |
'nodejs=8.11.1' \ | |
'sqlite=3.20.*' \ | |
'readline' \ | |
'libedit' \ | |
'ncurses' \ | |
'yarn' \ | |
&& echo "-------------------------" \ | |
&& echo "-- Ensure and upgrade pip" \ | |
&& which pip \ | |
&& which pip | grep "/opt/conda/bin/pip" \ | |
&& which python \ | |
&& which python | grep "/opt/conda/bin/python" \ | |
&& which python3 \ | |
&& which python3 | grep "/opt/conda/bin/python3" \ | |
&& export EXPECTED_PYTHON_VERSION="3.6.5" \ | |
&& export EXPECTED_PIP_VERSION="10.0.1" \ | |
&& python --version \ | |
&& python --version 2>&1 | grep "${EXPECTED_PYTHON_VERSION}" \ | |
&& pip install --no-cache-dir --upgrade pip \ | |
&& pip install --no-cache-dir setuptools==39.1.0 \ | |
&& pip --version \ | |
&& pip --version | grep "${EXPECTED_PIP_VERSION}" \ | |
&& echo "----------------------------" \ | |
&& echo "-- Ensure node, npm and yarn" \ | |
&& export EXPECTED_NODE_VERSION="8.11.1" \ | |
&& export EXPECTED_YARN_VERSION="1.8.0" \ | |
&& export EXPECTED_NPM_VERSION="5.6.0" \ | |
&& node --version \ | |
&& node --version | grep "v${EXPECTED_NODE_VERSION}" \ | |
&& yarn --version \ | |
&& yarn --version | grep "${EXPECTED_YARN_VERSION}" \ | |
&& npm --version \ | |
&& npm --version | grep "${EXPECTED_NPM_VERSION}" \ | |
&& npm install -g npm \ | |
&& npm install -g node-gyp \ | |
&& npm install -g bower \ | |
&& which node \ | |
&& which node | grep "/opt/conda/bin/node" \ | |
&& which npm \ | |
&& which npm | grep "/opt/conda/bin/npm" \ | |
&& chown -R ${NB_USER}:${NB_GID} ${CONDA_DIR} \ | |
&& chown -R ${NB_USER}:${NB_GID} /home/nbuser | |
USER ${NB_USER} | |
# Pinning twisted=17.* as it gets downgraded later on | |
# Pinning requests-oauthlib=0.8.* as it gets downgraded by dask or scikit or others later on | |
# | |
# before: 1.22 GB | |
# after: 1.47 GB | |
# diff: +250 MB | |
RUN echo "" \ | |
&& echo "------------------------------------------------------------------" \ | |
&& echo "-- Test conda, pip and python are there" \ | |
&& conda --version \ | |
&& which pip \ | |
&& which pip | grep "/opt/conda/bin/pip" \ | |
&& which python \ | |
&& which python | grep "/opt/conda/bin/python" \ | |
&& which python3 \ | |
&& which python3 | grep "/opt/conda/bin/python3" \ | |
&& echo "${CONDA_DIR}" | grep "conda" \ | |
&& echo "${LOCALE_TAG}" | grep "en" \ | |
&& echo "${JAVA_HOME}" | grep "java" \ | |
&& echo "${CLASSPATH}" | grep "java" \ | |
&& echo "-------------------------------------------------" \ | |
&& echo "-- Conda Install: Small and pinned repos (235 MB)" \ | |
&& conda install --yes \ | |
'twisted=17.*' \ | |
'requests-oauthlib=0.8.*' \ | |
'bleach' \ | |
'html5lib' \ | |
'python-dateutil' \ | |
'cytoolz' \ | |
'msgpack-python' \ | |
'networkx' \ | |
'openssl' \ | |
'pyOpenSSL' \ | |
'pyYAML' \ | |
'jsonschema' \ | |
'pyjwt' \ | |
'constantly' \ | |
'pyasn1' \ | |
'pyasn1-modules' \ | |
'dill' \ | |
'ipython' \ | |
'ipython_genutils' \ | |
'attrs' \ | |
'pamela' \ | |
'prometheus_client' \ | |
'markupsafe' \ | |
'markdown' \ | |
'pygments' \ | |
'automat' \ | |
'blinker' \ | |
'python-editor' \ | |
'libssh2' \ | |
'libpq' \ | |
'bzip2' \ | |
'krb5' \ | |
'hdf5' \ | |
'async_generator' \ | |
'mako' \ | |
'hyperlink' \ | |
'zope' \ | |
'zope.interface' \ | |
'incremental' \ | |
'appdirs' \ | |
'service_identity' \ | |
'statsd' \ | |
'pymysql' \ | |
'pycurl' \ | |
'urllib3' \ | |
'cryptography' \ | |
'cython' \ | |
'psycopg2' \ | |
'traitlets' \ | |
'decorator' \ | |
'tornado' \ | |
'alembic' \ | |
'SQLAlchemy' \ | |
'Jinja2' \ | |
'cachetools' \ | |
'websocket-client' \ | |
'google-auth' \ | |
'oauthlib' \ | |
'rsa' \ | |
'yapf' \ | |
'beautifulsoup4' \ | |
'simple-salesforce' \ | |
'snappy' \ | |
'python-snappy' \ | |
'awscli' \ | |
'boto3' \ | |
'botocore' \ | |
'colorama' \ | |
'docutils' \ | |
's3transfer' \ | |
'jmespath' \ | |
's3fs' \ | |
'xlrd' \ | |
'markovify' \ | |
'unidecode' \ | |
'simplejson' \ | |
'ijson' \ | |
'tabulate' \ | |
'future' \ | |
'pyparsing' \ | |
'pydot' \ | |
'pathlib' \ | |
'pybind11' \ | |
'XlsxWriter' \ | |
'et_xmlfile' \ | |
'jdcal' \ | |
'openpyxl' \ | |
'httplib2' \ | |
'oauth2client' \ | |
'gspread' \ | |
'termcolor' \ | |
'grpcio' \ | |
'astor' \ | |
'absl-py' \ | |
'gast' \ | |
'werkzeug' \ | |
'jupyterhub' \ | |
&& echo "-------------------------------------------------------------------" \ | |
&& echo "-- Pip Git Install: Kubespawner (20 MB) last known working version:" \ | |
&& echo "-- cff7f0128b337f3018b95e885a55bbfd96d6f994" \ | |
&& echo "-- Pip Git Install: Kubespawner (20 MB) upgrading:" \ | |
&& echo "-- 53b0ebd27893f5c6c914b130291fda674c6b5930" \ | |
&& pip install \ | |
'git+https://github.com/jupyterhub/kubespawner@53b0ebd27893f5c6c914b130291fda674c6b5930' \ | |
'nullauthenticator' \ | |
'oauthenticator' \ | |
'escapism' \ | |
'kubernetes' \ | |
&& echo "-----------------------------------------------" \ | |
&& echo "-- Npm Install: configurable-http-proxy (10 MB)" \ | |
&& npm install -g \ | |
'configurable-http-proxy' \ | |
&& echo "-- Test commonly used packages work for normal user: ${NB_USER}" \ | |
&& python3 -c 'import requests' \ | |
&& python3 -c 'import ijson' \ | |
&& python3 -c 'import simple_salesforce' \ | |
&& python3 -c 'import boto3' \ | |
&& python3 -c 'import gspread' \ | |
&& python3 -c 'import oauth2client' \ | |
&& echo "" | |
# Versions as of 2018-06-23 | |
# blas: 1.0-mkl defaults | |
# h5py: 2.8.0-py36ha1f6525_0 defaults | |
# intel-openmp: 2018.0.3-0 defaults | |
# libopenblas: 0.2.20-h9ac9557_7 defaults | |
# mkl: 2018.0.3-1 defaults | |
# mkl-service: 1.1.2-py36h17a0993_4 defaults | |
# mkl_fft: 1.0.1-py36h3010b51_0 defaults | |
# mkl_random: 1.0.1-py36h629b387_0 defaults | |
# nomkl: 3.0-0 defaults | |
# numpy: 1.14.5-py36hcd700cb_0 defaults | |
# numpy-base: 1.14.5-py36hdbf6ddf_0 defaults | |
# | |
# before: 1.47 GB | |
# after.: 2.33 GB | |
# diff..: +880 MB | |
RUN echo "" \ | |
&& echo "-------------------------------------------" \ | |
&& echo "-- Conda Install: mkl, blas, numpy (880 MB)" \ | |
&& conda install --yes \ | |
'blas' \ | |
'h5py' \ | |
'intel-openmp' \ | |
'mkl' \ | |
'mkl_fft' \ | |
'mkl_random' \ | |
'mkl-service' \ | |
'nomkl' \ | |
'numpy' \ | |
'numpy-base' \ | |
'cymem' \ | |
'ftfy' \ | |
'murmurhash' \ | |
'plac' \ | |
'preshed' \ | |
'regex' \ | |
'thinc' \ | |
'ujson' \ | |
'wordcloud' \ | |
'wrapt' \ | |
&& echo "-- Test commonly used packages work for normal user: ${NB_USER}" \ | |
&& python3 -c 'import numpy' \ | |
&& echo "" | |
# Pinning pandas=0.23.0 due to https://github.com/pandas-dev/pandas/issues/21471 | |
# Pinning numpy=1.14.* to avoid DOWNGRADED error numpy: 1.14.5-py36h28100ab_0 defaults --> 1.14.2-py36_nomklh2b20989_1 defaults [nomkl] | |
# | |
# before: 2.33 GB | |
# after.: 3.25 GB | |
# diff..: +1 GB | |
RUN echo "" \ | |
&& echo "------------------------" \ | |
&& echo "-- Pip Install: graphviz" \ | |
&& pip install \ | |
'graphviz' \ | |
# Pip install protobuf due to TF issue https://stackoverflow.com/a/50339442/511069 | |
&& echo "----------------------------------------" \ | |
&& echo "-- Conda Install: DSI packages (1 GB)" \ | |
&& conda install --yes \ | |
'numpy=1.14.*' \ | |
'pandas=0.23.0' \ | |
'qt=5.6.2' \ | |
'pyqt=5.6.*' \ | |
'pango=1.41.*' \ | |
'freetype=2.8' \ | |
'gst-plugins-base' \ | |
'gstreamer' \ | |
'matplotlib' \ | |
'matplotlib-venn' \ | |
'dask' \ | |
'dask-core' \ | |
'pytables' \ | |
'bcolz' \ | |
'yapf' \ | |
'packaging' \ | |
'numexpr' \ | |
'scipy' \ | |
'scikit-learn' \ | |
'scikit-image' \ | |
'bokeh' \ | |
'libgfortran-ng' \ | |
'seaborn' \ | |
'heapdict' \ | |
'psutil' \ | |
'sortedcontainers' \ | |
'cycler' \ | |
'click' \ | |
'clickclick' \ | |
'cloudpickle' \ | |
'dbus' \ | |
'distributed' \ | |
'pywavelets' \ | |
'tblib' \ | |
'expat' \ | |
'fontconfig' \ | |
'glib' \ | |
'icu' \ | |
'jpeg' \ | |
'kiwisolver' \ | |
'libpng' \ | |
'libxcb' \ | |
'libxml2' \ | |
'lzo' \ | |
'zict' \ | |
'partd' \ | |
'locket' \ | |
'blosc' \ | |
'pcre' \ | |
'pytz' \ | |
'sip' \ | |
'patsy' \ | |
'bqplot' \ | |
'colorlover' \ | |
'ppft' \ | |
'pox' \ | |
'imageio' \ | |
'multiprocess' \ | |
'pathos' \ | |
'cairo' \ | |
'deap' \ | |
'graphite2' \ | |
'harfbuzz' \ | |
'libtool' \ | |
'pixman' \ | |
&& echo "-- Test commonly used packages work for normal user: ${NB_USER}" \ | |
&& python3 -c 'import mpl_toolkits' \ | |
&& python3 -c 'import ipykernel' \ | |
&& python3 -c 'import ipywidgets' \ | |
&& python3 -c 'import matplotlib' \ | |
&& python3 -c 'import pandas' \ | |
&& python3 -c 'import scipy' \ | |
&& python3 -c 'import sklearn' \ | |
&& python3 -c 'import bokeh' \ | |
&& python3 -c 'import statsmodels' \ | |
&& python3 -c 'from graphviz import Digraph' \ | |
&& python3 -c "import matplotlib.pyplot" \ | |
&& echo "" | |
# Pinning numpy=1.14.* to avoid DOWNGRADED error numpy: 1.14.5-py36h28100ab_0 defaults --> 1.14.2-py36_nomklh2b20989_1 defaults [nomkl] | |
# | |
# before: 3.25 GB | |
# after.: 3.71 GB | |
# diff..: +480 MB | |
RUN echo "" \ | |
&& echo "-----------------------------------------------" \ | |
&& echo "-- Conda Install: notebook, jupyterlab (100 MB)" \ | |
&& conda install --yes \ | |
'numpy=1.14.*' \ | |
'backcall' \ | |
'entrypoints' \ | |
'gmp' \ | |
'gmpy2' \ | |
'fastcache' \ | |
'mpc' \ | |
'mpfr' \ | |
'mpmath' \ | |
'sympy' \ | |
'ipykernel' \ | |
'ipython' \ | |
'ipywidgets' \ | |
'jedi' \ | |
'jupyter_client' \ | |
'jupyter_core' \ | |
'jupyterlab' \ | |
'jupyterlab_launcher' \ | |
'libsodium' \ | |
'mistune' \ | |
'nbconvert' \ | |
'nbformat' \ | |
'notebook' \ | |
'pandoc' \ | |
'pandocfilters' \ | |
'parso' \ | |
'pexpect' \ | |
'pickleshare' \ | |
'prompt_toolkit' \ | |
'ptyprocess' \ | |
'pygments' \ | |
'pyzmq' \ | |
'send2trash' \ | |
'simplegeneric' \ | |
'terminado' \ | |
'testpath' \ | |
'wcwidth' \ | |
'widgetsnbextension' \ | |
'zeromq' \ | |
&& echo "----------------------------------" \ | |
&& echo "-- Conda Install: gcc gxx (380 MB)" \ | |
&& conda install --yes \ | |
'numpy=1.14.*' \ | |
'binutils_impl_linux-64' \ | |
'binutils_linux-64' \ | |
'gcc_impl_linux-64' \ | |
'gcc_linux-64' \ | |
'gxx_linux-64' \ | |
'gxx_impl_linux-64' \ | |
'gfortran_linux-64' \ | |
&& sudo ln -s /opt/conda/bin/x86_64-conda_cos6-linux-gnu-cc /usr/bin/ \ | |
&& echo "-- Test jupyter installed" \ | |
&& jupyter --version \ | |
&& echo "" | |
# Pinning numpy=1.14.* to avoid DOWNGRADED error numpy: 1.14.5-py36h28100ab_0 defaults --> 1.14.2-py36_nomklh2b20989_1 defaults [nomkl] | |
# | |
# before: 3.71 GB | |
# after.: 4.48 GB | |
# diff..: +780 MB | |
RUN echo "" \ | |
&& echo "--------------------------------------------------" \ | |
&& echo "-- Conda Install: additional DSI packages (680 MB)" \ | |
&& conda install --yes \ | |
'numpy=1.14.*' \ | |
'llvmlite' \ | |
'vincent' \ | |
'bcolz' \ | |
'qgrid' \ | |
'emcee' \ | |
'theano' \ | |
'thrift' \ | |
'thrift-cpp' \ | |
'fastparquet' \ | |
'pyarrow' \ | |
'pycrypto' \ | |
'pygpu' \ | |
'pystan' \ | |
'pytest' \ | |
'fbprophet' \ | |
'libboost' \ | |
'libevent' \ | |
'libgpuarray' \ | |
'mpld3' \ | |
'df2gspread' \ | |
'spylon-kernel' \ | |
'arrow-cpp' \ | |
'atomicwrites' \ | |
'findspark' \ | |
'google-api-python-client' \ | |
'lz4-c' \ | |
'metakernel' \ | |
'more-itertools' \ | |
'parquet-cpp' \ | |
'pluggy' \ | |
'py' \ | |
'uritemplate' \ | |
'vincent' \ | |
'zstd' \ | |
'plotly' \ | |
'dnspython' \ | |
'raven' \ | |
'contextlib2' \ | |
'arrow' \ | |
'typing' \ | |
'pystache' \ | |
'humanize' \ | |
'pyperclip'\ | |
'tqdm' \ | |
&& echo "---------------------------------------" \ | |
&& echo "-- Pip Install: additional DSI packages" \ | |
&& pip install \ | |
'lightgbm' \ | |
# https://github.com/ClimbsRocks/auto_ml | |
# http://auto-ml.readthedocs.io/en/latest/ | |
'auto-ml' \ | |
'expan' \ | |
'nmslib' \ | |
'cufflinks' \ | |
# squarify is for creating Treemaps | |
'squarify' \ | |
'sklearn-deap2' \ | |
'enum34' \ | |
'edward' \ | |
'pytagcloud' \ | |
'nltk' \ | |
'textblob' \ | |
'TextBlob-de' \ | |
'stups' \ | |
'stups-zign' \ | |
&& echo "--------------------------" \ | |
&& echo "-- Install XGBoost (10 MB)" \ | |
# https://xgboost.readthedocs.io/en/latest/build.html | |
&& cd /tmp \ | |
&& git clone --recursive https://github.com/dmlc/xgboost \ | |
&& cd xgboost \ | |
&& make -j4 \ | |
&& cd python-package \ | |
&& python setup.py install \ | |
&& cd /tmp && rm -rf /tmp/xgboost \ | |
&& echo "---------------------------------------------------------------" \ | |
&& echo "-- Test commonly used packages work for normal user: ${NB_USER}" \ | |
&& python3 -c 'import df2gspread' \ | |
&& python3 -c 'import fastparquet' \ | |
&& python3 -c 'import fbprophet' \ | |
&& python3 -c 'import squarify' \ | |
&& python3 -c 'import expan' \ | |
&& python3 -c 'import tqdm' \ | |
&& python3 -c 'import lightgbm' \ | |
&& python3 -c 'import auto_ml' \ | |
&& python3 -c 'import xgboost' \ | |
&& echo "" | |
# before: 4.48 GB | |
# after.: 5.18 GB | |
# diff..: +727 MB | |
RUN echo "" \ | |
&& echo "---------------------------------------------" \ | |
&& echo "-- Pip Install: Tensorflow and Keras (287 MB)" \ | |
&& pip install \ | |
'numpy==1.14.*' \ | |
'tf-nightly==1.10.0.dev20180624' \ | |
'tb-nightly==1.10.0a20180622 ' \ | |
'keras' \ | |
'absl-py' \ | |
'astor' \ | |
'gast' \ | |
'grpcio' \ | |
'markdown' \ | |
'setuptools' \ | |
'termcolor' \ | |
'wheel' \ | |
'pandas-gbq' \ | |
'protobuf' \ | |
'pillow' \ | |
'wordcloud' \ | |
&& echo "------------------------" \ | |
&& echo "-- Test Tensorflow works" \ | |
&& python3 -c 'import tensorflow' \ | |
&& python3 -c 'import tensorboard' \ | |
&& python3 -c 'import keras' \ | |
&& echo "-------------------------------" \ | |
&& echo "-- Install: java 8 (256 MB) ..." \ | |
&& mkdir -p /usr/share/man/man1 \ | |
&& apt-qyy update && apt -qqy install \ | |
openjdk-8-jdk \ | |
&& sudo chown -R ${NB_USER}:${NB_GID} /usr/share/java/ \ | |
&& echo "------------" \ | |
&& echo "-- Test Java" \ | |
&& java -version \ | |
&& java -version 2>&1 | grep "1.8" \ | |
# https://cloud.google.com/sdk/docs/quickstart-debian-ubunt | |
&& echo "---------------------------------------" \ | |
&& echo "-- Install: gcloud, gsutil (184 MB) ..." \ | |
&& export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" \ | |
&& echo "deb http://packages.cloud.google.com/apt ${CLOUD_SDK_REPO} main" | \ | |
sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list \ | |
&& wget -O - "https://packages.cloud.google.com/apt/doc/apt-key.gpg" | sudo apt-key add - \ | |
&& apt-qyy update && apt -qqy install \ | |
google-cloud-sdk \ | |
&& gcloud --version \ | |
&& gsutil --version \ | |
&& python3 -c 'import google.cloud' \ | |
&& echo "" | |
# before: 5.18 GB | |
# after.: 6.18 GB | |
# diff..: +1 GB | |
RUN echo "" \ | |
&& echo "----------------------------------------------------------" \ | |
&& echo "-- Conda Install: rstudio dependencies [part 1] (1 GB) ..." \ | |
&& conda install --yes \ | |
'numpy==1.14.*' \ | |
'defaults::qt=5.6.2' \ | |
# 'mro-base' \ | |
'curl' \ | |
'libntlm' \ | |
'libuuid' \ | |
'cyrus-sasl' \ | |
'unixodbc' \ | |
'font-ttf-ubuntu' \ | |
'font-ttf-dejavu-sans-mono' \ | |
'fonts-anaconda' \ | |
'font-ttf-source-code-pro' \ | |
'font-ttf-inconsolata' \ | |
'_r-mutex' \ | |
'r-revoutilsmath' \ | |
&& echo "" | |
# before: 6.18 GB | |
# after.: 7.65 GB | |
# diff..: +1.47 GB | |
RUN echo "" \ | |
&& echo "------------------------------------------------------------" \ | |
&& echo "-- Conda Install: rstudio dependencies [part 2] (1.5 GB) ..." \ | |
&& conda install --yes \ | |
'numpy==1.14.*' \ | |
'defaults::qt=5.6.2' \ | |
'mro-basics' \ | |
'r-lattice' \ | |
'r-jsonlite' \ | |
'r-mgcv' \ | |
'r-boot' \ | |
'r-nnet' \ | |
'r-codetools' \ | |
'r-revoioq' \ | |
# 'r-microsoftr' \ | |
'r-spatial' \ | |
'r-checkpoint' \ | |
'r-mass' \ | |
'r-kernsmooth' \ | |
'r-png' \ | |
'r-matrix' \ | |
'r-survival' \ | |
'r-foreign' \ | |
'r-class' \ | |
'r-iterators' \ | |
'r-cluster' \ | |
'r-revomods' \ | |
'r-curl' \ | |
'r-doparallel' \ | |
'r-rpart' \ | |
'r-runit' \ | |
'r-foreach' \ | |
'r-nlme' \ | |
'r-deployrrserve' \ | |
'r-r6' \ | |
&& echo "" | |
# before: 7.65 GB | |
# after.: 8.38 GB | |
# diff..: 750MB | |
RUN echo "" \ | |
&& echo "------------------------------------------------" \ | |
&& echo "-- Conda Install: rstudio dependencies ( MB) ..." \ | |
# gtar: https://github.com/IRkernel/IRkernel/issues/487 | |
&& sudo ln -s /bin/tar /bin/gtar \ | |
&& conda install --yes \ | |
'numpy==1.14.*' \ | |
'r-assertthat' \ | |
'r-backports' \ | |
'r-base64enc' \ | |
'r-bh' \ | |
'r-bindr' \ | |
'r-bindrcpp' \ | |
'r-bit' \ | |
'r-bit64' \ | |
'r-bitops' \ | |
'r-blob' \ | |
'r-broom' \ | |
'r-callr' \ | |
'r-caret' \ | |
'r-catools' \ | |
'r-cellranger' \ | |
'r-cli' \ | |
'r-clipr' \ | |
'r-colorspace' \ | |
'r-config' \ | |
'r-crayon' \ | |
'r-cvst' \ | |
'r-data.table' \ | |
'r-dbi' \ | |
'r-dbplyr' \ | |
'r-ddalpha' \ | |
'r-deoptimr' \ | |
'r-dichromat' \ | |
'r-digest' \ | |
'r-dimred' \ | |
'r-dplyr' \ | |
'r-drr' \ | |
'r-essentials' \ | |
'r-evaluate' \ | |
'r-forcats' \ | |
'r-formatr' \ | |
'r-ggplot2' \ | |
'r-glmnet' \ | |
'r-glue' \ | |
'r-gower' \ | |
'r-gtable' \ | |
'r-haven' \ | |
'r-hexbin' \ | |
'r-highr' \ | |
'r-hms' \ | |
'r-htmltools' \ | |
'r-htmlwidgets' \ | |
'r-httpuv' \ | |
'r-httr' \ | |
'r-ipred' \ | |
'r-irdisplay' \ | |
'r-irkernel' \ | |
'r-kernlab' \ | |
'r-knitr' \ | |
'r-labeling' \ | |
'r-lava' \ | |
'r-lazyeval' \ | |
'r-lubridate' \ | |
'r-magrittr' \ | |
'r-maps' \ | |
'r-markdown' \ | |
'r-mime' \ | |
'r-miniui' \ | |
'r-mnormt' \ | |
'r-modelmetrics' \ | |
'r-modelr' \ | |
'r-mongolite' \ | |
'r-munsell' \ | |
'r-numderiv' \ | |
'r-odbc' \ | |
'r-openssl' \ | |
'r-packrat' \ | |
'r-pbdzmq' \ | |
'r-pillar' \ | |
'r-pkgconfig' \ | |
'r-pki' \ | |
'r-plogr' \ | |
'r-plyr' \ | |
'r-prodlim' \ | |
'r-profvis' \ | |
'r-psych' \ | |
'r-purrr' \ | |
'r-quantmod' \ | |
'r-randomforest' \ | |
'r-rappdirs' \ | |
'r-rbokeh' \ | |
'r-rcolorbrewer' \ | |
'r-rcpp' \ | |
'r-rcpproll' \ | |
'r-rcurl' \ | |
'r-readr' \ | |
'r-readxl' \ | |
'r-recipes' \ | |
'r-recommended' \ | |
'r-rematch' \ | |
'r-repr' \ | |
'r-reprex' \ | |
'r-reshape2' \ | |
'r-rjava' \ | |
'r-rjdbc' \ | |
'r-rjsonio' \ | |
'r-rlang' \ | |
'r-rmarkdown' \ | |
'r-robustbase' \ | |
'r-rprojroot' \ | |
'r-rsconnect' \ | |
'r-rstudioapi' \ | |
'r-rvest' \ | |
'r-scales' \ | |
'r-selectr' \ | |
'r-sfsmisc' \ | |
'r-sourcetools' \ | |
'r-sparklyr' \ | |
'r-stringi' \ | |
'r-stringr' \ | |
'r-tibble' \ | |
'r-tidyr' \ | |
'r-tidyselect' \ | |
'r-tidyverse' \ | |
'r-timedate' \ | |
'r-ttr' \ | |
'r-utf8' \ | |
'r-uuid' \ | |
'r-viridislite' \ | |
'r-whisker' \ | |
'r-withr' \ | |
'r-xml2' \ | |
'r-xtable' \ | |
'r-xts' \ | |
'r-yaml' \ | |
'r-zoo' \ | |
'rstudio' \ | |
&& R CMD javareconf \ | |
&& echo "" | |
RUN conda info | |
# before: 8.38 GB | |
# after.: | |
# diff..: | |
RUN echo "" \ | |
&& echo "------------------------------------------------" \ | |
&& echo "-- Conda Install: rstudio dependencies ( MB) ..." \ | |
&& conda install --yes \ | |
'r-base' \ | |
&& R CMD javareconf \ | |
&& echo "" | |
# This fails with: | |
# UnsatisfiableError: The following specifications were found to be in conflict: | |
# - r-base -> _r-mutex=1[build=anacondar_1] | |
# - r-microsoftr -> mro-base=3.4.3 -> _r-mutex=1[build=mro_2] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment