Use the local version of the distpackages when build debian files
diff --git a/tools/distpackages/build_deb_packages.sh b/tools/distpackages/build_deb_packages.sh
index 7dff8e3..366a518 100755
--- a/tools/distpackages/build_deb_packages.sh
+++ b/tools/distpackages/build_deb_packages.sh
@@ -30,9 +30,13 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Where to put resulting .deb packages.
+set -x
 deb_dest="/tmp/deb_out"
 mkdir -p $deb_dest
 
+# Where the grpc disto is
+grpc_root="/var/local/git/grpc"
+
 # Update version from default values if the file /version.txt exists
 #
 # - when present, /version.txt will added by the docker build.
@@ -71,7 +75,9 @@
   if [ $pkg_name == "libgrpc" ]
   then
     # Copy shared libraries
-    (cd ../..; make install-shared_c prefix=$tmp_dir/$pkg_name/usr/lib)
+    pushd $grpc_root
+    make install-shared_c prefix=$tmp_dir/$pkg_name/usr/lib
+    popd
     mv $tmp_dir/$pkg_name/usr/lib/lib $arch_lib_dir
 
     # non-dev package should contain so.0 symlinks
@@ -84,7 +90,10 @@
   if [ $pkg_name == "libgrpc-dev" ]
   then
     # Copy headers and static libraries
-    (cd ../..; make install-headers_c install-static_c prefix=$tmp_dir/$pkg_name/usr/lib)
+    pushd $grpc_root
+    make install-headers_c install-static_c prefix=$tmp_dir/$pkg_name/usr/lib
+    popd
+
     mv $tmp_dir/$pkg_name/usr/lib/include $tmp_dir/$pkg_name/usr/include
     mv $tmp_dir/$pkg_name/usr/lib/lib $arch_lib_dir
 
diff --git a/tools/dockerfile/grpc_build_deb/Dockerfile b/tools/dockerfile/grpc_build_deb/Dockerfile
index cf8da59..7f025b6 100644
--- a/tools/dockerfile/grpc_build_deb/Dockerfile
+++ b/tools/dockerfile/grpc_build_deb/Dockerfile
@@ -33,8 +33,14 @@
 # Add the file containing the gRPC version
 ADD version.txt version.txt
 
+# Add the update-to-date distpackages folder
+ADD distpackages distpackages
+
 # Install dependencies
-RUN apt-get update && apt-get install -y lintian
+RUN echo 'deb http://http.debian.net/debian experimental main contrib non-free' >> /etc/apt/sources.list
+RUN apt-get update \
+  && apt-get -t experimental install -y openssl=1.0.2-1 \
+  && apt-get install -y lintian
 
 # Get the source from GitHub
 RUN git clone https://github.com/grpc/grpc.git /var/local/git/grpc
@@ -42,4 +48,4 @@
   git pull --recurse-submodules && \
   git submodule update --init --recursive
 
-RUN /bin/bash -l -c 'cd /var/local/git/grpc/tools/distpackages && ./build_deb_packages.sh'
+RUN /bin/bash -l -c 'cd /distpackages && ./build_deb_packages.sh'
diff --git a/tools/gce_setup/grpc_docker.sh b/tools/gce_setup/grpc_docker.sh
index 0e82ac1..dc48098 100755
--- a/tools/gce_setup/grpc_docker.sh
+++ b/tools/gce_setup/grpc_docker.sh
@@ -747,6 +747,11 @@
   local project_opt="--project $grpc_project"
   local zone_opt="--zone $grpc_zone"
 
+  # Update the remote distpackages_dir
+  local src_dist_dir='tools/distpackages'
+  local rmt_dist_dir="$host:~"
+  gcloud compute copy-files $src_dist_dir $rmt_dist_dir $project_opt $zone_opt || return 1
+
   # rebuild the build_deb image
   local label='build_deb'
   grpc_update_image -- -h $host $label || return 1
diff --git a/tools/gce_setup/shared_startup_funcs.sh b/tools/gce_setup/shared_startup_funcs.sh
index e6eecc5..c4a0767 100755
--- a/tools/gce_setup/shared_startup_funcs.sh
+++ b/tools/gce_setup/shared_startup_funcs.sh
@@ -434,6 +434,12 @@
     grpc_docker_sync_service_account $dockerfile_dir/service_account || return 1;
   }
 
+  # For deb builds, copy the distpackages folder into the docker directory so
+  # that it can be installed using ADD distpackages distpackages.
+  [[ $image_label == "grpc/build_deb" ]] && {
+    cp -vR ~/distpackages $dockerfile_dir
+  }
+
   # TODO(temiola): maybe make cache/no-cache a func option?
   sudo docker build $cache_opt -t $image_label $dockerfile_dir || {
     echo "$FUNCNAME:: build of $image_label <- $dockerfile_dir"