Merge pull request #708 from jtattermusch/deb_on_docker

Building of Debian packages on Docker
pull/709/head
donnadionne 10 years ago
commit 6e8d15e7de
  1. 11
      tools/distpackages/build_deb_packages.sh
  2. 13
      tools/dockerfile/grpc_build_deb/Dockerfile
  3. 31
      tools/dockerfile/grpc_ruby_deb/Dockerfile
  4. 5
      tools/dockerfile/grpc_ruby_deb/README.md

@ -35,7 +35,13 @@ mkdir -p $deb_dest
version='0.8.0.0'
arch=`uname -p`
if [ -f /.dockerinit ]; then
# We're in Docker where uname -p returns "unknown".
arch=x86_64
else
arch=`uname -p`
fi
if [ $arch != "x86_64" ]
then
echo Unsupported architecture.
@ -77,13 +83,14 @@ do
# create symlinks to shared libraries
for libname in $arch_lib_dir/*.a
do
base=`basename -s .a $libname`
base=`basename $libname .a`
ln -s $base.so.$version $arch_lib_dir/$base.so
done
fi
# Adjust mode for some files in the package
find $tmp_dir/$pkg_name -type d | xargs chmod 755
find $tmp_dir/$pkg_name -type d | xargs chmod a-s
find $tmp_dir/$pkg_name -type f | xargs chmod 644
chmod 755 $tmp_dir/$pkg_name/DEBIAN/{postinst,postrm}

@ -0,0 +1,13 @@
# Dockerfile to build Debian packages for gRPC C core.
FROM grpc/base
# Install dependencies
RUN apt-get update && apt-get install -y lintian
# Get the source from GitHub
RUN git clone git@github.com:grpc/grpc.git /var/local/git/grpc
RUN cd /var/local/git/grpc && \
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'

@ -0,0 +1,31 @@
# Dockerfile for gRPC Ruby, but using Debian packages for gRPC C core.
FROM grpc/ruby_base
# Pull the latest sources
RUN cd /var/local/git/grpc \
&& git pull --recurse-submodules \
&& git submodule update --init --recursive
# Make sure we don't rely on things that shouldn't be there.
RUN make clean -C /var/local/git/grpc
# Debian packages need to be supplied externally
ADD libgrpc_amd64.deb libgrpc_amd64.deb
ADD libgrpc-dev_amd64.deb libgrpc-dev_amd64.deb
# Install the C core .deb packages
RUN /bin/bash -l -c 'dpkg -i libgrpc_amd64.deb libgrpc-dev_amd64.deb'
# Build ruby gRPC and run its tests
RUN /bin/bash -l -c 'cd /var/local/git/grpc/src/ruby && bundle && rake'
# Add a cacerts directory containing the Google root pem file, allowing the
# ruby client to access the production test instance
ADD cacerts cacerts
# Add a service_account directory containing the auth creds file
ADD service_account service_account
# Specify the default command such that the interop server runs on its known
# testing port
CMD ["/bin/bash", "-l", "-c", "ruby /var/local/git/grpc/src/ruby/bin/interop/interop_server.rb --use_tls --port 8060"]

@ -0,0 +1,5 @@
GRPC RUBY Base Dockerfile (Debian package version)
========================
Dockerfile for creating the Ruby gRPC development Docker instance.
Uses gRPC C core Debian packages instead of installing it using make.
Loading…
Cancel
Save