# Base Dockerfile for gRPC Ruby. # # Includes Ruby installation dependencies, things that are unlikely to vary. FROM grpc/base # Allows 'source' to work RUN rm /bin/sh && ln -s /bin/bash /bin/sh # Install RVM dependencies RUN apt-get update && apt-get install -y \ autoconf \ automake \ bison \ curl \ g++ \ gawk \ gcc \ libc6-dev \ libffi-dev \ libgdbm-dev \ libncurses5-dev \ libreadline6-dev \ libsqlite3-dev \ libssl-dev \ libtool \ libyaml-dev \ make \ patch \ pkg-config \ procps \ sqlite3 \ zlib1g-dev # Start the daemon that allows access to the protected git-on-borg repos RUN /var/local/git/gcompute-tools/git-cookie-authdaemon # Download the patched Ruby protobuf (beefcake) so that Ruby gRPC clients can # be generated from proto3 schemas. RUN git clone https://team.googlesource.com/one-platform-grpc-team/grpc-ruby-beefcake \ /var/local/git/beefcake # Install RVM, use this to install ruby RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 # Needed for RVM RUN /bin/bash -l -c "curl -L get.rvm.io | bash -s stable" # Install Ruby 2.1 RUN /bin/bash -l -c "rvm install ruby-2.1" RUN /bin/bash -l -c "rvm use --default ruby-2.1" RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc" RUN /bin/bash -l -c "echo 'source /home/grpc_ruby/.rvm/scripts/rvm' >> ~/.bashrc" RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc" RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc" RUN git clone https://team.googlesource.com/one-platform-grpc-team/grpc /var/local/git/grpc RUN cd /var/local/git/grpc \ && git submodule update --init --recursive RUN make static_c shared_c -C /var/local/git/grpc