mirror of
https://github.com/ArthurDanjou/handson-ml3.git
synced 2026-01-14 12:14:36 +01:00
Update docker image for 2nd edition
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM continuumio/anaconda3:5.2.0
|
||||
FROM continuumio/anaconda3:2019.03
|
||||
|
||||
RUN apt-get update && apt-get upgrade -y \
|
||||
&& apt-get install -y \
|
||||
@@ -7,20 +7,37 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
git \
|
||||
sudo \
|
||||
cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev libboost-all-dev libsdl2-dev swig \
|
||||
unzip zip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN conda update -n base conda
|
||||
RUN conda install -y \
|
||||
joblib \
|
||||
PyYAML==3.13
|
||||
RUN conda install -y -c conda-forge \
|
||||
tensorflow \
|
||||
jupyter_contrib_nbextensions \
|
||||
pyopengl
|
||||
pyopengl \
|
||||
xgboost \
|
||||
nbdime
|
||||
RUN pip install "urlextract"
|
||||
RUN pip install "gym[atari,box2d,classic_control]"
|
||||
RUN pip install "tensorflow-hub"
|
||||
RUN pip install "tensorflow-serving-api"
|
||||
RUN pip install "tfx"
|
||||
#RUN pip install "tensorflow-addons"
|
||||
RUN pip install "tf-agents-nightly"
|
||||
RUN pip install "tfds-nightly"
|
||||
RUN pip install "tfp-nightly"
|
||||
RUN pip uninstall -y tensorflow
|
||||
RUN pip uninstall -y tensorboard
|
||||
RUN pip install "tf-nightly-2.0-preview"
|
||||
RUN pip install "tb-nightly"
|
||||
|
||||
|
||||
ARG username
|
||||
ARG userid
|
||||
|
||||
ARG home=/home/${username}
|
||||
ARG workdir=${home}/handson-ml
|
||||
ARG workdir=${home}/handson-ml2
|
||||
|
||||
RUN adduser ${username} --uid ${userid} --gecos '' --disabled-password \
|
||||
&& echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} \
|
||||
@@ -29,25 +46,17 @@ RUN adduser ${username} --uid ${userid} --gecos '' --disabled-password \
|
||||
WORKDIR ${workdir}
|
||||
RUN chown ${username}:${username} ${workdir}
|
||||
|
||||
USER ${username}
|
||||
|
||||
RUN jupyter contrib nbextension install --user
|
||||
RUN jupyter nbextension enable toc2/main
|
||||
|
||||
|
||||
# INFO: Jupyter and nbdime extension are not totally integrated (anaconda image is py36,
|
||||
# nbdime checks for py35 at the moment, still the config below enables diffing
|
||||
# notebooks with nbdiff (and nbdiff support in git diff command) after connecting
|
||||
# to the container by "make exec" (or "docker-compose exec handson-ml bash")
|
||||
# You may also try running:
|
||||
# nbd NOTEBOOK_NAME.ipynb
|
||||
# to get nbdiff between checkpointed version and current version of the given notebook
|
||||
USER root
|
||||
WORKDIR /
|
||||
RUN conda install -y -c conda-forge nbdime
|
||||
USER ${username}
|
||||
WORKDIR ${workdir}
|
||||
|
||||
# The config below enables diffing notebooks with nbdiff (and nbdiff support
|
||||
# in git diff command) after connecting to the container by "make exec" (or
|
||||
# "docker-compose exec handson-ml2 bash")
|
||||
# You may also try running:
|
||||
# nbdiff NOTEBOOK_NAME.ipynb
|
||||
# to get nbdiff between checkpointed version and current version of the
|
||||
# given notebook.
|
||||
|
||||
RUN git-nbdiffdriver config --enable --global
|
||||
|
||||
# INFO: Optionally uncomment any (one) of the following RUN commands below to ignore either
|
||||
@@ -56,19 +65,6 @@ RUN git-nbdiffdriver config --enable --global
|
||||
RUN git config --global diff.jupyternotebook.command 'git-nbdiffdriver diff --ignore-details'
|
||||
|
||||
|
||||
# INFO: Dirty nbdime patching (ignored if not matching)
|
||||
COPY docker/nbdime-*.patch /tmp/
|
||||
USER root
|
||||
WORKDIR /
|
||||
RUN patch -d /opt/conda/lib/python3.6/site-packages -p1 --forward --reject-file=- < \
|
||||
/tmp/nbdime-1-details.patch || true \
|
||||
&& patch -d /opt/conda/lib/python3.6/site-packages -p1 --forward --reject-file=- < \
|
||||
/tmp/nbdime-2-toc.patch || true
|
||||
RUN rm /tmp/nbdime-*.patch
|
||||
USER ${username}
|
||||
WORKDIR ${workdir}
|
||||
|
||||
|
||||
COPY docker/bashrc.bash /tmp/
|
||||
RUN cat /tmp/bashrc.bash >> ${home}/.bashrc
|
||||
RUN echo "export PATH=\"${workdir}/docker/bin:$PATH\"" >> ${home}/.bashrc
|
||||
@@ -81,11 +77,13 @@ RUN sudo rm /tmp/bashrc.bash
|
||||
#RUN cat /tmp/jupyter_notebook_config.py >> ${home}/.jupyter/jupyter_notebook_config.py
|
||||
#RUN sudo rm /tmp/jupyter_notebook_config.py
|
||||
|
||||
|
||||
# INFO: Uncomment the RUN command below to disable git diff paging
|
||||
#RUN git config --global core.pager ''
|
||||
|
||||
|
||||
# INFO: Uncomment the RUN command below for easy and constant notebook URL (just localhost:8888)
|
||||
# That will switch jupyter to using empty password instead of a token.
|
||||
# That will switch Jupyter to using empty password instead of a token.
|
||||
# To avoid making a security hole you SHOULD in fact not only uncomment but
|
||||
# regenerate the hash for your own non-empty password and replace the hash below.
|
||||
# You can compute a password hash in any notebook, just run the code:
|
||||
|
||||
Reference in New Issue
Block a user