From c043d718401e701012d9bdc94482b58e68498518 Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 8 Mar 2017 17:59:19 +0800 Subject: [PATCH] Add Book in Docker --- .../build_and_install/docker_install_en.rst | 25 ++++++++++++++++++- paddle/scripts/docker/Dockerfile | 6 ++--- paddle/scripts/docker/Dockerfile.gpu | 6 ++--- paddle/scripts/docker/build.sh | 3 ++- paddle/scripts/docker/entrypoint | 2 +- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index 5a1056e85..a92201c61 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -42,7 +42,7 @@ Windows -- in a consistent way. .. code-block:: bash - docker run -d -p 2202:22 -v $PWD:/paddle paddle:dev + docker run -d -p 2202:22 -p 8888:8888 -v $PWD:/paddle paddle:dev This runs a container of the development environment Docker image with the local source tree mounted to :code:`/paddle` of the @@ -82,6 +82,29 @@ Windows -- in a consistent way. cd /paddle/build ctest +4. Run PaddlePaddle Book under Docker Container + + The Jupyter Notebook is an open-source web application that allows + you to create and share documents that contain live code, equations, + visualizations and explanatory text in a single browser. + + PaddlePaddle Book is an interactive Jupyter Notebook for users and developers. + We already exposed port 8888 for this book. If you want to + dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. + + Once you are inside the container, simply issue the command: + + .. code-block:: bash + + jupyter notebook + + Then, you would back and paste the address into the local browser: + + .. code-block:: text + + http://localhost:8888/ + + That's all. Enjoy your journey! CPU-only and GPU Images ----------------------- diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile index 98eaa15a0..fa4aee4f8 100644 --- a/paddle/scripts/docker/Dockerfile +++ b/paddle/scripts/docker/Dockerfile @@ -34,6 +34,8 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store +# fetch PaddlePaddle book +RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -60,9 +62,7 @@ RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config EXPOSE 22 -# Jupyter Notebook directory. -RUN mkdir /notes/ -WORKDIR "/notes" +# Jupyter Notebook: Paddle book EXPOSE 8888 COPY ./paddle/scripts/docker/entrypoint /opt/bin/ diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu index 4d30ccdd2..07b32dda7 100644 --- a/paddle/scripts/docker/Dockerfile.gpu +++ b/paddle/scripts/docker/Dockerfile.gpu @@ -34,6 +34,8 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store +# fetch PaddlePaddle book +RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -60,9 +62,7 @@ RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config EXPOSE 22 -# Jupyter Notebook directory. -RUN mkdir /notes/ -WORKDIR "/notes" +# Jupyter Notebook: Paddle book EXPOSE 8888 COPY ./paddle/scripts/docker/entrypoint /opt/bin/ diff --git a/paddle/scripts/docker/build.sh b/paddle/scripts/docker/build.sh index d9c44f423..b2e6416c3 100755 --- a/paddle/scripts/docker/build.sh +++ b/paddle/scripts/docker/build.sh @@ -17,7 +17,8 @@ if [[ ${BUILD_AND_INSTALL:-OFF} == 'ON' ]]; then fi mkdir -p /paddle/build # -p means no error if exists - cd /paddle/build + # clean local cmake and third_party cache + cd /paddle/build && rm -rf * && rm -rf ../third_party cmake .. \ -DWITH_DOC=${WITH_DOC:-OFF} \ -DWITH_GPU=${WITH_GPU:-OFF} \ diff --git a/paddle/scripts/docker/entrypoint b/paddle/scripts/docker/entrypoint index 87083467f..cd119917f 100755 --- a/paddle/scripts/docker/entrypoint +++ b/paddle/scripts/docker/entrypoint @@ -4,5 +4,5 @@ LOG=/var/log/all touch $LOG /usr/sbin/sshd -D >> $LOG & -jupyter notebook --ip=0.0.0.0 /notes/ >> $LOG & +jupyter notebook --ip=0.0.0.0 /paddle/book/ >> $LOG & tail -f $LOG -- GitLab