|
|
|
@ -104,3 +104,69 @@ container:
|
|
|
|
|
|
|
|
|
|
Then we can direct our Web browser to the HTML version of source code
|
|
|
|
|
at http://localhost:8088/paddle/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Development Using Docker
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
Develpers can work on PaddlePaddle using Docker. This allows
|
|
|
|
|
developers to work on different platforms -- Linux, Mac OS X, and
|
|
|
|
|
Windows -- in a consistent way.
|
|
|
|
|
|
|
|
|
|
The general development workflow with Docker and Bazel is as follows:
|
|
|
|
|
|
|
|
|
|
1. Get the source code of Paddle:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
git clone --recursive https://github.com/paddlepaddle/paddle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Build a development Docker image `paddle:dev` from the source code.
|
|
|
|
|
This image contains all the development tools and dependencies of
|
|
|
|
|
PaddlePaddle.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
cd paddle
|
|
|
|
|
docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Run the image as a container and mounting local source code
|
|
|
|
|
directory into the container. This allows us to change the code on
|
|
|
|
|
the host and build it within the container.
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
docker run \
|
|
|
|
|
-d # run the container in background mode \
|
|
|
|
|
--name paddle # we can run a nginx container to serve documents \
|
|
|
|
|
-p 2022:22 # so we can SSH into this container \
|
|
|
|
|
-v $PWD:/paddle # mount the source code \
|
|
|
|
|
-v $HOME/.cache/bazel:/root/.cache/bazel # mount Bazel cache \
|
|
|
|
|
paddle:dev
|
|
|
|
|
|
|
|
|
|
1. SSH into the container:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
ssh root@localhost -p 2022
|
|
|
|
|
|
|
|
|
|
1. We can edit the source code in the container or on this host. Then
|
|
|
|
|
we can build using cmake
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
cd /paddle # where paddle source code has been mounted into the container
|
|
|
|
|
mkdir -p build
|
|
|
|
|
cd build
|
|
|
|
|
cmake ..
|
|
|
|
|
make -j `nproc`
|
|
|
|
|
|
|
|
|
|
or Bazel in the container:
|
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
|
|
cd /paddle
|
|
|
|
|
bazel build ...
|
|
|
|
|