Skip to content

Commit 6ace11b

Browse files
committed
Add templates and drop manual Lua install
1 parent 072200c commit 6ace11b

File tree

3 files changed

+138
-5
lines changed

3 files changed

+138
-5
lines changed

Dockerfile-alpine.template

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# vim:set ft=dockerfile:
2+
FROM alpine:%%ALPINE_VERSION%%
3+
4+
ENV HAPROXY_MAJOR %%HAPROXY_MAJOR%%
5+
ENV HAPROXY_VERSION %%HAPROXY_VERSION%%
6+
ENV HAPROXY_MD5 %%HAPROXY_MD5%%
7+
8+
# see https://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
9+
RUN set -x \
10+
\
11+
&& apk add --no-cache --virtual .build-deps \
12+
ca-certificates \
13+
gcc \
14+
libc-dev \
15+
linux-headers \
16+
lua5.3-dev \
17+
make \
18+
openssl \
19+
openssl-dev \
20+
pcre-dev \
21+
readline-dev \
22+
tar \
23+
zlib-dev \
24+
\
25+
# install HAProxy
26+
&& wget -O haproxy.tar.gz "https://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
27+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
28+
&& mkdir -p /usr/src/haproxy \
29+
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
30+
&& rm haproxy.tar.gz \
31+
\
32+
&& makeOpts=' \
33+
TARGET=linux2628 \
34+
USE_LUA=1 LUA_INC=/usr/include/lua5.3 LUA_LIB=/usr/lib/lua5.3 \
35+
USE_OPENSSL=1 \
36+
USE_PCRE=1 PCREDIR= \
37+
USE_ZLIB=1 \
38+
' \
39+
&& make -C /usr/src/haproxy -j "$(getconf _NPROCESSORS_ONLN)" all $makeOpts \
40+
&& make -C /usr/src/haproxy install-bin $makeOpts \
41+
\
42+
&& mkdir -p /usr/local/etc/haproxy \
43+
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
44+
&& rm -rf /usr/src/haproxy \
45+
\
46+
&& runDeps="$( \
47+
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \
48+
| tr ',' '\n' \
49+
| sort -u \
50+
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
51+
)" \
52+
&& apk add --virtual .haproxy-rundeps $runDeps \
53+
&& apk del .build-deps
54+
55+
COPY docker-entrypoint.sh /
56+
ENTRYPOINT ["/docker-entrypoint.sh"]
57+
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]

Dockerfile-debian.template

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# vim:set ft=dockerfile:
2+
FROM debian:%%DEBIAN_VERSION%%
3+
4+
RUN apt-get update \
5+
&& apt-get install -y --no-install-recommends \
6+
liblua5.3-0 \
7+
libpcre3 \
8+
libssl1.1 \
9+
&& rm -rf /var/lib/apt/lists/*
10+
11+
ENV HAPROXY_MAJOR %%HAPROXY_MAJOR%%
12+
ENV HAPROXY_VERSION %%HAPROXY_VERSION%%
13+
ENV HAPROXY_MD5 %%HAPROXY_MD5%%
14+
15+
# see https://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
16+
RUN set -x \
17+
\
18+
&& buildDeps=' \
19+
ca-certificates \
20+
gcc \
21+
libc6-dev \
22+
liblua5.3-dev \
23+
libpcre3-dev \
24+
libssl-dev \
25+
zlib1g-dev \
26+
make \
27+
wget \
28+
' \
29+
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
30+
\
31+
&& wget -O haproxy.tar.gz "https://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
32+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
33+
&& mkdir -p /usr/src/haproxy \
34+
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
35+
&& rm haproxy.tar.gz \
36+
\
37+
&& makeOpts=' \
38+
TARGET=linux2628 \
39+
USE_LUA=1 LUA_INC=/usr/include/lua5.3 \
40+
USE_OPENSSL=1 \
41+
USE_PCRE=1 PCREDIR= \
42+
USE_ZLIB=1 \
43+
' \
44+
&& make -C /usr/src/haproxy -j "$(nproc)" all $makeOpts \
45+
&& make -C /usr/src/haproxy install-bin $makeOpts \
46+
\
47+
&& mkdir -p /usr/local/etc/haproxy \
48+
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
49+
&& rm -rf /usr/src/haproxy \
50+
\
51+
&& apt-get purge -y --auto-remove $buildDeps
52+
53+
COPY docker-entrypoint.sh /
54+
ENTRYPOINT ["/docker-entrypoint.sh"]
55+
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"]

update.sh

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@ if [ ${#versions[@]} -eq 0 ]; then
99
fi
1010
versions=( "${versions[@]%/}" )
1111

12+
defaultDebianSuite='stretch-slim'
13+
declare -A debianSuite=(
14+
[1.5]='jessie'
15+
)
16+
defaultAlpineVersion='3.7'
17+
declare -A alpineVersion=(
18+
[1.5]='3.5'
19+
)
20+
1221
travisEnv=
1322
for version in "${versions[@]}"; do
1423
rcGrepV='-v'
@@ -26,18 +35,30 @@ for version in "${versions[@]}"; do
2635
| tail -1
2736
)"
2837
md5="$(curl -sSL --compressed 'https://www.haproxy.org/download/'"$rcVersion"'/src/haproxy-'"$fullVersion"'.tar.gz.md5' | cut -d' ' -f1)"
38+
39+
versionSuite="${debianSuite[$version]:-$defaultDebianSuite}"
40+
alpine="${alpineVersion[$version]:-$defaultAlpineVersion}"
2941
sedExpr='
30-
s/^(ENV HAPROXY_MAJOR) .*/\1 '"$rcVersion"'/;
31-
s/^(ENV HAPROXY_VERSION) .*/\1 '"$fullVersion"'/;
32-
s/^(ENV HAPROXY_MD5) .*/\1 '"$md5"'/;
42+
s/%%ALPINE_VERSION%%/'"$alpine"'/;
43+
s/%%DEBIAN_VERSION%%/'"$versionSuite"'/;
44+
s/%%HAPROXY_MAJOR%%/'"$rcVersion"'/;
45+
s/%%HAPROXY_VERSION%%/'"$fullVersion"'/;
46+
s/%%HAPROXY_MD5%%/'"$md5"'/;
3347
'
34-
( set -x; sed -ri "$sedExpr" "$version/Dockerfile" )
48+
( set -x; sed -r "$sedExpr" 'Dockerfile-debian.template' > "$version/Dockerfile" )
3549

3650
for variant in alpine; do
3751
[ -d "$version/$variant" ] || continue
38-
( set -x; sed -ri "$sedExpr" "$version/$variant/Dockerfile" )
52+
( set -x; sed -r "$sedExpr" 'Dockerfile-alpine.template' > "$version/$variant/Dockerfile" )
3953
travisEnv='\n - VERSION='"$version VARIANT=$variant$travisEnv"
4054
done
55+
56+
if [ "$version" = '1.5' ]; then
57+
for dockerfile in "$version/Dockerfile" "$version/$variant/Dockerfile"; do
58+
sed -ri -e '/lua/d' -e 's/libssl1.1/libssl1.0.0/' "$dockerfile"
59+
done
60+
fi
61+
4162
travisEnv='\n - VERSION='"$version ARCH=i386$travisEnv"
4263
travisEnv='\n - VERSION='"$version VARIANT=$travisEnv"
4364
done

0 commit comments

Comments
 (0)