Add Dockerfile for codegen distribution
diff --git a/DEPLOYING.md b/DEPLOYING.md
index 6581ead..cb5b3c1 100644
--- a/DEPLOYING.md
+++ b/DEPLOYING.md
@@ -3,8 +3,8 @@
 
 Build Environments
 ------------------
-We have succesfully deployed GRPC to Maven Central under the following systems:
-- Ubuntu 14.04 64-bit
+We deploy GRPC to Maven Central under the following systems:
+- Ubuntu 14.04 with Docker 1.6.1 that runs CentOS 6.6
 - Windows 7 64-bit with MSYS2 with mingw32 and mingw64
 - Mac OS X 10.9.5
 
@@ -48,22 +48,12 @@
    system paths.
 
 
-#### Linux
-You must have multilib GCC installed on your system.
-
-Compile and install 32-bit protobuf:
+#### Linux with Docker
+Build the ``protoc-artifacts`` image under the Protobuf source directory:
 ```
-protobuf$ CXXFLAGS="-m32" ./configure --disable-shared --prefix=$HOME/protobuf-32
-protobuf$ make clean && make && make install
+protobuf$ docker build -t protoc-artifacts protoc-artifacts
 ```
 
-Compile and install 64-bit protobuf:
-```
-protobuf$ CXXFLAGS="-m64" ./configure --disable-shared --prefix=$HOME/protobuf-64
-protobuf$ make clean && make && make install
-```
-
-
 #### Windows 64-bit with MSYS2 (Recommended for Windows)
 Because the gcc shipped with MSYS2 doesn't support multilib, you have to
 compile and deploy 32-bit and 64-bit binaries in separate steps.
@@ -127,30 +117,39 @@
 the header files and libraries of Protobuf.
 
 #### Linux
+Build the ``grpc-java-deploy`` image:
 ```
-$ export CXXFLAGS="-I$HOME/protobuf-32/include" \
-  LDFLAGS="-L$HOME/protobuf-32/lib -L$HOME/protobuf-64/lib"
+grpc-java$ docker build -t grpc-java-deploy grpc-compiler
 ```
 
+Start a Docker container that has the deploy environment set up for you. The
+gRPC source is cloned into ``/grpc-java``.
+```
+$ docker run -it --rm=true grpc-java-deploy
+```
+Note that the container will be deleted after you exit. Any changes you have
+made will be lost. If you want to keep the container, remove ``--rm=true`` from
+the command line.
+
 #### Windows 64-bit with MSYS2
 
 ##### Under MinGW-w64 Win32 Shell
 
 ```
-$ export CXXFLAGS="-I$HOME/protobuf-32/include" \
+grpc-java$ export CXXFLAGS="-I$HOME/protobuf-32/include" \
   LDFLAGS="-L$HOME/protobuf-32/lib"
 ```
 
 ##### Under MinGW-w64 Win64 Shell
 ```
-$ export CXXFLAGS="-I$HOME/protobuf-64/include" \
+grpc-java$ export CXXFLAGS="-I$HOME/protobuf-64/include" \
   LDFLAGS="-L$HOME/protobuf-64/lib"
 ```
 
 
 #### Mac
 ```
-$ export CXXFLAGS="-I$HOME/protobuf/include" \
+grpc-java$ export CXXFLAGS="-I$HOME/protobuf/include" \
   LDFLAGS="$HOME/protobuf/lib/libprotobuf.a $HOME/protobuf/lib/libprotoc.a"
 ```
 
diff --git a/compiler/Dockerfile b/compiler/Dockerfile
new file mode 100644
index 0000000..a8f40c5
--- /dev/null
+++ b/compiler/Dockerfile
@@ -0,0 +1,19 @@
+FROM protoc-artifacts:latest
+
+RUN scl enable devtoolset-1.1 'bash -c "cd /protobuf && \
+    git checkout v3.0.0-alpha-2 && \
+    ./autogen.sh && \
+    CXXFLAGS=-m32 ./configure --disable-shared --prefix=/protobuf-32 && \
+    make clean && make && make install"'
+
+RUN scl enable devtoolset-1.1 'bash -c "cd /protobuf && \
+    CXXFLAGS=-m64 ./configure --disable-shared --prefix=/protobuf-64 && \
+    make clean && make && make install"'
+
+ENV CXXFLAGS -I/protobuf-32/include
+ENV LDFLAGS "-L/protobuf-32/lib -L/protobuf-64/lib"
+
+RUN git clone --depth 1 https://github.com/grpc/grpc-java.git
+
+# Start in devtoolset environment that uses GCC 4.7
+CMD ["scl", "enable", "devtoolset-1.1", "bash"]