Skip to content

Commit 35d556d

Browse files
committed
Merge pull request #65 from infosiftr/all-alpine
Add Alpine to all versions
2 parents c8b41f3 + a4b7790 commit 35d556d

File tree

4 files changed

+173
-0
lines changed

4 files changed

+173
-0
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ env:
77
- VERSION=2.3 VARIANT=alpine
88
- VERSION=2.2 VARIANT=
99
- VERSION=2.2 VARIANT=slim
10+
- VERSION=2.2 VARIANT=alpine
1011
- VERSION=2.1 VARIANT=
1112
- VERSION=2.1 VARIANT=slim
13+
- VERSION=2.1 VARIANT=alpine
1214
- VERSION=2.0 VARIANT=
1315
- VERSION=2.0 VARIANT=slim
1416

2.1/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.1
4+
ENV RUBY_VERSION 2.1.8
5+
ENV RUBY_DOWNLOAD_SHA256 afd832b8d5ecb2e3e1477ec6a9408fdf9898ee73e4c5df17a2b2cb36bd1c355d
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" ]

2.2/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.2
4+
ENV RUBY_VERSION 2.2.4
5+
ENV RUBY_DOWNLOAD_SHA256 b6eff568b48e0fda76e5a36333175df049b204e91217aa32a65153cc0cdcb761
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" ]

update.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ latest_gem_version() {
1717
rubygems="$(latest_gem_version rubygems-update)"
1818
bundler="$(latest_gem_version bundler)"
1919

20+
travisEnv=
2021
for version in "${versions[@]}"; do
2122
fullVersion="$(curl -sSL --compressed "http://cache.ruby-lang.org/pub/ruby/$version/" \
2223
| grep -E '<a href="ruby-'"$version"'.[^"]+\.tar\.bz2' \
@@ -35,4 +36,12 @@ for version in "${versions[@]}"; do
3536
' "$version"{/,/*/}Dockerfile
3637
sed -ri 's/^(FROM ruby):.*/\1:'"$version"'/' "$version/"*"/Dockerfile"
3738
)
39+
for variant in alpine slim; do
40+
[ -d "$version/$variant" ] || continue
41+
travisEnv='\n - VERSION='"$version VARIANT=$variant$travisEnv"
42+
done
43+
travisEnv='\n - VERSION='"$version VARIANT=$travisEnv"
3844
done
45+
46+
travis="$(awk -v 'RS=\n\n' '$1 == "env:" { $0 = "env:'"$travisEnv"'" } { printf "%s%s", $0, RS }' .travis.yml)"
47+
echo "$travis" > .travis.yml

0 commit comments

Comments
 (0)