Skip to content

Commit defb10a

Browse files
J0WItianon
authored andcommitted
Add Alpine 3.11 (#300)
1 parent e0f00b9 commit defb10a

File tree

7 files changed

+142
-9
lines changed

7 files changed

+142
-9
lines changed

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,26 @@ services: docker
44
env:
55
- VERSION=2.7 VARIANT=buster
66
- VERSION=2.7 VARIANT=buster/slim
7+
- VERSION=2.7 VARIANT=alpine3.11
78
- VERSION=2.7 VARIANT=alpine3.10
89
- VERSION=2.6 VARIANT=buster
910
- VERSION=2.6 VARIANT=buster/slim
1011
- VERSION=2.6 VARIANT=stretch
1112
- VERSION=2.6 VARIANT=stretch/slim
13+
- VERSION=2.6 VARIANT=alpine3.11
1214
- VERSION=2.6 VARIANT=alpine3.10
13-
- VERSION=2.6 VARIANT=alpine3.9
1415
- VERSION=2.5 VARIANT=buster
1516
- VERSION=2.5 VARIANT=buster/slim
1617
- VERSION=2.5 VARIANT=stretch
1718
- VERSION=2.5 VARIANT=stretch/slim
19+
- VERSION=2.5 VARIANT=alpine3.11
1820
- VERSION=2.5 VARIANT=alpine3.10
19-
- VERSION=2.5 VARIANT=alpine3.9
2021
- VERSION=2.4 VARIANT=buster
2122
- VERSION=2.4 VARIANT=buster/slim
2223
- VERSION=2.4 VARIANT=stretch
2324
- VERSION=2.4 VARIANT=stretch/slim
25+
- VERSION=2.4 VARIANT=alpine3.11
2426
- VERSION=2.4 VARIANT=alpine3.10
25-
- VERSION=2.4 VARIANT=alpine3.9
2627

2728
install:
2829
- git clone --depth 1 https://github.com/docker-library/official-images.git ~/official-images
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.9
1+
FROM alpine:3.11
22

33
RUN apk add --no-cache \
44
gmp-dev
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.9
1+
FROM alpine:3.11
22

33
RUN apk add --no-cache \
44
gmp-dev
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.9
1+
FROM alpine:3.11
22

33
RUN apk add --no-cache \
44
gmp-dev

2.7/alpine3.11/Dockerfile

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
FROM alpine:3.11
2+
3+
RUN apk add --no-cache \
4+
gmp-dev
5+
6+
# skip installing gem documentation
7+
RUN set -eux; \
8+
mkdir -p /usr/local/etc; \
9+
{ \
10+
echo 'install: --no-document'; \
11+
echo 'update: --no-document'; \
12+
} >> /usr/local/etc/gemrc
13+
14+
ENV RUBY_MAJOR 2.7
15+
ENV RUBY_VERSION 2.7.0
16+
ENV RUBY_DOWNLOAD_SHA256 27d350a52a02b53034ca0794efe518667d558f152656c2baaf08f3d0c8b02343
17+
18+
# some of ruby's build scripts are written in ruby
19+
# we purge system ruby later to make sure our final image uses what we just built
20+
# readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75
21+
RUN set -eux; \
22+
\
23+
apk add --no-cache --virtual .ruby-builddeps \
24+
autoconf \
25+
bison \
26+
bzip2 \
27+
bzip2-dev \
28+
ca-certificates \
29+
coreutils \
30+
dpkg-dev dpkg \
31+
gcc \
32+
gdbm-dev \
33+
glib-dev \
34+
libc-dev \
35+
libffi-dev \
36+
libxml2-dev \
37+
libxslt-dev \
38+
linux-headers \
39+
make \
40+
ncurses-dev \
41+
openssl \
42+
openssl-dev \
43+
procps \
44+
readline-dev \
45+
ruby \
46+
tar \
47+
xz \
48+
yaml-dev \
49+
zlib-dev \
50+
; \
51+
\
52+
wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz"; \
53+
echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; \
54+
\
55+
mkdir -p /usr/src/ruby; \
56+
tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; \
57+
rm ruby.tar.xz; \
58+
\
59+
cd /usr/src/ruby; \
60+
\
61+
# https://github.com/docker-library/ruby/issues/196
62+
# https://bugs.ruby-lang.org/issues/14387#note-13 (patch source)
63+
# https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here)
64+
wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \
65+
echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \
66+
patch -p1 -i thread-stack-fix.patch; \
67+
rm thread-stack-fix.patch; \
68+
\
69+
# hack in "ENABLE_PATH_CHECK" disabling to suppress:
70+
# warning: Insecure world writable dir
71+
{ \
72+
echo '#define ENABLE_PATH_CHECK 0'; \
73+
echo; \
74+
cat file.c; \
75+
} > file.c.new; \
76+
mv file.c.new file.c; \
77+
\
78+
autoconf; \
79+
gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
80+
# the configure script does not detect isnan/isinf as macros
81+
export ac_cv_func_isnan=yes ac_cv_func_isinf=yes; \
82+
./configure \
83+
--build="$gnuArch" \
84+
--disable-install-doc \
85+
--enable-shared \
86+
; \
87+
make -j "$(nproc)"; \
88+
make install; \
89+
\
90+
runDeps="$( \
91+
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \
92+
| tr ',' '\n' \
93+
| sort -u \
94+
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
95+
)"; \
96+
apk add --no-network --virtual .ruby-rundeps \
97+
$runDeps \
98+
bzip2 \
99+
ca-certificates \
100+
libffi-dev \
101+
procps \
102+
yaml-dev \
103+
zlib-dev \
104+
; \
105+
apk del --no-network .ruby-builddeps; \
106+
\
107+
cd /; \
108+
rm -r /usr/src/ruby; \
109+
# verify we have no "ruby" packages installed
110+
! apk --no-network list --installed \
111+
| grep -v '^[.]ruby-rundeps' \
112+
| grep -i ruby \
113+
; \
114+
[ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \
115+
# rough smoke test
116+
ruby --version; \
117+
gem --version; \
118+
bundle --version
119+
120+
# install things globally, for great justice
121+
# and don't create ".bundle" in all our apps
122+
ENV GEM_HOME /usr/local/bundle
123+
ENV BUNDLE_PATH="$GEM_HOME" \
124+
BUNDLE_SILENCE_ROOT_WARNING=1 \
125+
BUNDLE_APP_CONFIG="$GEM_HOME"
126+
# path recommendation: https://github.com/bundler/bundler/pull/6469#issuecomment-383235438
127+
ENV PATH $GEM_HOME/bin:$BUNDLE_PATH/gems/bin:$PATH
128+
# adjust permissions of a few directories for running "gem install" as an arbitrary user
129+
RUN mkdir -p "$GEM_HOME" && chmod 777 "$GEM_HOME"
130+
# (BUNDLE_PATH = GEM_HOME, no need to mkdir/chown both)
131+
132+
CMD [ "irb" ]

generate-stackbrew-library.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ defaultDebianSuite='buster'
1010
declare -A debianSuites=(
1111
#[2.7]='buster'
1212
)
13-
defaultAlpineVersion='3.10'
13+
defaultAlpineVersion='3.11'
1414
declare -A alpineVersion=(
1515
#[2.3]='3.8'
1616
)
@@ -80,7 +80,7 @@ join() {
8080
for version in "${versions[@]}"; do
8181
for v in \
8282
{buster,stretch}{,/slim} \
83-
alpine{3.10,3.9} \
83+
alpine{3.11,3.10} \
8484
; do
8585
dir="$version/$v"
8686
variant="$(basename "$v")"

update.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ for version in "${versions[@]}"; do
7171
echo "$version: $fullVersion; $shaVal"
7272

7373
for v in \
74-
alpine{3.9,3.10} \
74+
alpine{3.10,3.11} \
7575
{stretch,buster}{/slim,} \
7676
; do
7777
dir="$version/$v"

0 commit comments

Comments
 (0)