I’m building a Jupyter Notebook with the LSST software added, and my Dockerfile reads:
FROM jupyter/minimal-notebook:latest
USER root
RUN apt-get update && \
apt-get upgrade -yq --no-install-recommends \
wget \
bzip2 \
ca-certificates \
sudo \
locales \
fonts-liberation \
bison \
cmake \
curl \
flex \
g++ \
gettext \
git \
less \
libbz2-dev \
libcurl4-openssl-dev \
libfontconfig1 \
libglib2.0-dev \
libncurses5-dev \
libreadline6-dev \
libx11-dev \
libxrender1 \
libxt-dev \
m4 \
make \
default-jre \
perl-modules \
rsync \
zlib1g-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /opt/lsst && chown $NB_USER /opt/lsst
USER $NB_USER
# python3 updates and additional files
RUN conda install --quiet --yes \
'conda-build' \
'pandas=0.21*' \
'matplotlib=2.1.0' \
'scipy=1.0.0' \
'seaborn=0.8.1' \
'scikit-learn=0.19.1' \
'scikit-image=0.13.0' \
'sympy=1.1.1' \
'cython=0.27.3' \
'cloudpickle=0.5.2' \
'numba=0.35.0' \
'numpy=1.13.3' \
'ffmpeg=3.4' \
'bokeh=0.12.10' \
'sqlalchemy=1.1.13' \
'hdf5=1.10.1' \
'h5py=2.7.0' \
'beautifulsoup4=4.6.0' \
'quantecon=0.3.7' \
'mpld3=0.3' \
'numexpr=2.6.4' \
'pycosat=0.6.3' \
'statsmodels=0.8.0' \
'nltk=3.2.5' \
'spectral=0.18' \
'folium=0.5.0' \
'tensorflow=1.3.0' \
'ipywidgets=7.1' \
'xlrd=1.1.0' && \
conda clean -tipsy
# For some reason, I need to install these AFTER installing the stuff above
RUN conda install --quiet --yes \
'vega' \
'gdal=2.1.4' \
'geopandas=0.3.0' \
'basemap=1.1.0' \
'basemap-data-hires=1.1.0' \
'netcdf4=1.3.1' \
'windrose=1.6.3' \
'rasterstats=0.12.0' \
'jupyterhub=0.7.2' \
&& conda remove --quiet --yes --force qt pyqt && \
conda clean -tipsy
# Now install
WORKDIR /opt/lsst
# Configure environment
ENV LC_ALL=en_US.UTF-8 \
LANG=en_US.UTF-8 \
LANGUAGE=en_US.UTF-8
RUN curl -OL https://raw.githubusercontent.com/lsst/lsst/master/scripts/newinstall.sh && \
chmod +x newinstall.sh && \
bash ./newinstall.sh -b -P /opt/conda/bin/python && \
bash -c "source /opt/lsst/loadLSST.bash ; eups distrib install lsst_distrib; eups distrib install sims_maf -t sims"
WORKDIR /home/$NB_USER
(The Jupyter notebook is Ubuntu 16:04)
The conda install definitely adds ‘pycosat’:
pycosat-0.6.3 | py36_0 201 KB conda-forge
… which is an upgrade:
pycosat: 0.6.3-py36h0a5515d_0 defaults --> 0.6.3-py36_0 conda-forge
… and the old version is removed:
removing pycosat-0.6.3-py36h0a5515d_0
HOWEVER!
When it comes to the LSST install, it wants to reinstall pycosat-0.6.3-py36h0a5515d_0… and then barfs:
UnsatisfiableError: The following specifications were found to be in conflict:
- conda -> pycosat[version='>=0.6.3']
- pycosat==0.6.2=py36_0
Use "conda info <package>" to see the dependencies for each package.
If I drop back to the 14.0 version… I’m fine.
Any hints?