Skip to content

Commit ae7dcbf

Browse files
committed
Merge pull request #60 from ncopa/ruby-alpine
Ruby alpine
2 parents 4810c06 + 88d2940 commit ae7dcbf

File tree

3 files changed

+83
-1
lines changed

3 files changed

+83
-1
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ services: docker
44
env:
55
- VERSION=2.3 VARIANT=
66
- VERSION=2.3 VARIANT=slim
7+
- VERSION=2.3 VARIANT=alpine
78
- VERSION=2.2 VARIANT=
89
- VERSION=2.2 VARIANT=slim
910
- VERSION=2.1 VARIANT=

2.3/alpine/Dockerfile

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
FROM alpine:3.3
2+
3+
ENV RUBY_MAJOR 2.3
4+
ENV RUBY_VERSION 2.3.0
5+
ENV RUBY_DOWNLOAD_SHA256 ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507
6+
ENV RUBYGEMS_VERSION 2.5.1
7+
8+
# skip installing gem documentation
9+
RUN echo -e 'install: --no-document\nupdate: --no-document' >> "$HOME/.gemrc"
10+
11+
RUN set -x \
12+
&& apk add --no-cache --virtual .ruby-builddeps \
13+
autoconf \
14+
bison \
15+
bzip2 \
16+
bzip2-dev \
17+
ca-certificates \
18+
coreutils \
19+
curl \
20+
gcc \
21+
gdbm-dev \
22+
glib-dev \
23+
libc-dev \
24+
libedit-dev \
25+
libffi-dev \
26+
libxml2-dev \
27+
libxslt-dev \
28+
linux-headers \
29+
make \
30+
ncurses-dev \
31+
openssl-dev \
32+
procps \
33+
ruby \
34+
yaml-dev \
35+
zlib-dev \
36+
&& curl -fSL -o ruby.tar.gz "http://cache.ruby-lang.org/pub/ruby/$RUBY_MAJOR/ruby-$RUBY_VERSION.tar.gz" \
37+
&& echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.gz" | sha256sum -c - \
38+
&& mkdir -p /usr/src \
39+
&& tar -xzf ruby.tar.gz -C /usr/src \
40+
&& mv "/usr/src/ruby-$RUBY_VERSION" /usr/src/ruby \
41+
&& rm ruby.tar.gz \
42+
&& cd /usr/src/ruby \
43+
&& autoconf \
44+
# the configure script does not detect isnan/isinf as macros
45+
&& ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --disable-install-doc \
46+
&& make -j"$(nproc)" \
47+
&& make install \
48+
&& gem update --system $RUBYGEMS_VERSION \
49+
&& runDeps="$( \
50+
scanelf --needed --nobanner --recursive /usr/local \
51+
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
52+
| sort -u \
53+
| xargs -r apk info --installed \
54+
| sort -u \
55+
)" \
56+
&& apk add --virtual .ruby-rundeps $runDeps \
57+
bzip2 \
58+
ca-certificates \
59+
curl \
60+
libffi-dev \
61+
openssl-dev \
62+
yaml-dev \
63+
procps \
64+
zlib-dev \
65+
&& apk del .ruby-builddeps \
66+
&& rm -r /usr/src/ruby
67+
68+
# install things globally, for great justice
69+
ENV GEM_HOME /usr/local/bundle
70+
ENV PATH $GEM_HOME/bin:$PATH
71+
72+
ENV BUNDLER_VERSION 1.11.2
73+
74+
RUN gem install bundler --version "$BUNDLER_VERSION" \
75+
&& bundle config --global path "$GEM_HOME" \
76+
&& bundle config --global bin "$GEM_HOME/bin"
77+
78+
# don't create ".bundle" in all our apps
79+
ENV BUNDLE_APP_CONFIG $GEM_HOME
80+
81+
CMD [ "irb" ]

generate-stackbrew-library.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ for version in "${versions[@]}"; do
3030
echo "$va: ${url}@${commit} $version"
3131
done
3232

33-
for variant in onbuild slim; do
33+
for variant in onbuild slim alpine; do
3434
commit="$(cd "$version/$variant" && git log -1 --format='format:%H' -- Dockerfile $(awk 'toupper($1) == "COPY" { for (i = 2; i < NF; i++) { print $i } }' Dockerfile))"
3535
echo
3636
for va in "${versionAliases[@]}"; do

0 commit comments

Comments
 (0)