~ubuntu-branches/ubuntu/wily/grpc/wily

« back to all changes in this revision

Viewing changes to tools/dockerfile/grpc_ruby_base/Dockerfile

  • Committer: Package Import Robot
  • Author(s): Andrew Pollock
  • Date: 2015-05-07 13:28:11 UTC
  • Revision ID: package-import@ubuntu.com-20150507132811-ybm4hfq73tnvvd2e
Tags: upstream-0.10.0
ImportĀ upstreamĀ versionĀ 0.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# Copyright 2015, Google Inc.
 
2
# All rights reserved.
 
3
#
 
4
# Redistribution and use in source and binary forms, with or without
 
5
# modification, are permitted provided that the following conditions are
 
6
# met:
 
7
#
 
8
#     * Redistributions of source code must retain the above copyright
 
9
# notice, this list of conditions and the following disclaimer.
 
10
#     * Redistributions in binary form must reproduce the above
 
11
# copyright notice, this list of conditions and the following disclaimer
 
12
# in the documentation and/or other materials provided with the
 
13
# distribution.
 
14
#     * Neither the name of Google Inc. nor the names of its
 
15
# contributors may be used to endorse or promote products derived from
 
16
# this software without specific prior written permission.
 
17
#
 
18
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
19
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
20
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
21
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
22
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
23
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
24
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
25
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
26
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
27
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
28
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
29
 
 
30
# Base Dockerfile for gRPC Ruby.
 
31
#
 
32
# Includes Ruby installation dependencies, things that are unlikely to vary.
 
33
FROM grpc/base
 
34
 
 
35
# Allows 'source' to work
 
36
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
 
37
 
 
38
# Install RVM dependencies
 
39
RUN apt-get update && apt-get install -y \
 
40
    autoconf \
 
41
    automake \
 
42
    bison \
 
43
    curl \
 
44
    g++ \
 
45
    gawk \
 
46
    gcc \
 
47
    libc6-dev \
 
48
    libffi-dev \
 
49
    libgdbm-dev \
 
50
    libncurses5-dev \
 
51
    libreadline6-dev \
 
52
    libsqlite3-dev \
 
53
    libssl-dev \
 
54
    libtool \
 
55
    libyaml-dev \
 
56
    make \
 
57
    patch \
 
58
    pkg-config \
 
59
    procps \
 
60
    sqlite3 \
 
61
    zlib1g-dev
 
62
 
 
63
# Install RVM, use this to install ruby
 
64
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3  # Needed for RVM
 
65
RUN /bin/bash -l -c "curl -L get.rvm.io | bash -s stable"
 
66
 
 
67
# Install Ruby 2.1
 
68
RUN /bin/bash -l -c "rvm install ruby-2.1"
 
69
RUN /bin/bash -l -c "rvm use --default ruby-2.1"
 
70
RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
 
71
RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc"
 
72
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
 
73
 
 
74
# Get the source from GitHub
 
75
RUN git clone https://github.com/grpc/grpc.git /var/local/git/grpc
 
76
RUN cd /var/local/git/grpc && \
 
77
  git pull --recurse-submodules && \
 
78
  git submodule update --init --recursive
 
79
 
 
80
# Build and install the protobuf library
 
81
RUN cd /var/local/git/grpc/third_party/protobuf && \
 
82
  ./autogen.sh && \
 
83
  ./configure --prefix=/usr && \
 
84
  make -j12 && make check && make install && make clean
 
85
 
 
86
# TODO: pre-building seems unnecessary, because we need to run make clean
 
87
# anyway to prevent build from crashing if header files are added/removed.
 
88
# Build the C core
 
89
RUN make static_c shared_c -j12 -C /var/local/git/grpc
 
90
 
 
91
# Define the default command.
 
92
CMD ["bash"]