# Installs Jupyter Notebook and IPython kernel from the current branch # Another Docker container should inherit with `FROM jupyter/notebook` # to run actual services. FROM ubuntu:14.04 MAINTAINER Project Jupyter # Not essential, but wise to set the lang # Note: Users with other languages should set this in their derivative image ENV LANGUAGE en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 ENV PYTHONIOENCODING UTF-8 # Python binary and source dependencies RUN apt-get update -qq && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \ build-essential \ ca-certificates \ curl \ git \ language-pack-en \ libcurl4-openssl-dev \ libsqlite3-dev \ libzmq3-dev \ pandoc \ python \ python-dev \ python3-dev \ sqlite3 \ texlive-fonts-recommended \ texlive-latex-base \ texlive-latex-extra \ zlib1g-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install the recent pip release RUN curl -O https://bootstrap.pypa.io/get-pip.py && \ python2 get-pip.py && \ python3 get-pip.py && \ rm get-pip.py # Install some dependencies. RUN pip2 --no-cache-dir install ipykernel && \ pip3 --no-cache-dir install ipykernel && \ \ python2 -m ipykernel.kernelspec && \ python3 -m ipykernel.kernelspec # Move notebook contents into place. ADD . /usr/src/jupyter-notebook # Link entrypoint script for easy access. RUN ln -s /usr/src/jupyter-notebook/scripts/lxc-launcher.sh /launch.sh # Install dependencies and run tests. RUN BUILD_DEPS="nodejs-legacy npm" && \ apt-get update -qq && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq $BUILD_DEPS && \ \ pip3 install --no-cache-dir --pre -e /usr/src/jupyter-notebook && \ \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq $BUILD_DEPS && \ apt-get purge -y --auto-remove \ -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false $BUILD_DEPS # Run tests. RUN pip2 install --no-cache-dir mock nose requests testpath && \ pip3 install --no-cache-dir nose requests testpath && \ \ iptest2 && iptest3 && \ \ pip2 uninstall -y funcsigs mock nose pbr requests six testpath && \ pip3 uninstall -y nose requests testpath VOLUME /notebooks WORKDIR /notebooks EXPOSE 8888 ENTRYPOINT /launch.sh