Repository navigation
Expand file tree
/
Copy pathDockerfile.erb
More file actions
42 lines (38 loc) · 1.68 KB
/
Copy pathDockerfile.erb
File metadata and controls
42 lines (38 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
FROM quay.io/<%= ENV.fetch('FROM') %>
ENV RUBY_MAJOR_MINOR <%= ENV.fetch('RUBY_MAJOR_MINOR') %>
ENV RUBY_PATCH <%= ENV.fetch('RUBY_PATCH') %>
ENV RUBY_VERSION <%= ENV.fetch('RUBY_MAJOR_MINOR') %>.<%= ENV.fetch('RUBY_PATCH') %>
ENV RUBY_SHA1SUM <%= ENV.fetch('RUBY_SHA1SUM') %>
RUN BUILD_DIR="/tmp/ruby-build" \
&& apt-get update \
&& apt-get -y install wget build-essential zlib1g-dev libssl-dev \
libreadline6-dev libyaml-dev tzdata \
&& mkdir -p "$BUILD_DIR" \
&& cd "$BUILD_DIR" \
&& wget -q "http://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR_MINOR}/ruby-${RUBY_VERSION}.tar.gz" \
&& echo "${RUBY_SHA1SUM} ruby-${RUBY_VERSION}.tar.gz" | sha1sum -c - \
&& tar xzf "ruby-${RUBY_VERSION}.tar.gz" \
&& cd "ruby-${RUBY_VERSION}" \
&& ./configure --enable-shared --prefix=/usr \
&& make \
&& make install \
&& cd / \
&& rm -r "$BUILD_DIR" \
&& rm -rf /var/lib/apt/lists/*
# There are 3 cases we need to accommodate here:
# * On Ruby >= 2.3, update_rubygems no longer works, so we run `gem update --system`
# * On Ruby >= 2.0.0 but < 2.3, we can use a pessimistic ~> operator on gem install,
# to install the latest patch version of a common minor version
# * On Ruby 1.9.3, the pessimistic operator isn't supported by the default gem,
# so we must gem install a specific version
<% if ENV['RUBYGEMS_VERSION'] %>
RUN (gem install "rubygems-update:~><%= ENV['RUBYGEMS_VERSION'] %>" --no-ri --no-rdoc || \
gem install rubygems-update --version=<%= ENV['RUBYGEMS_VERSION'] %> --no-ri --no-rdoc) && \
update_rubygems
<% else %>
RUN gem update --system
<% end %>
#
RUN gem install "bundler:~><%= ENV.fetch('BUNDLER_VERSION') %>" --no-document --force
ADD test /tmp/test
RUN bats /tmp/test