Skip to content

Commit 91cc574

Browse files
authored
Merge pull request #38 from Tecnativa/lua
Add lua support.
2 parents d704d45 + 2081633 commit 91cc574

File tree

4 files changed

+154
-44
lines changed

4 files changed

+154
-44
lines changed

1.6/Dockerfile

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,50 @@
1-
FROM debian:jessie
1+
FROM debian:jessie-backports
22

3-
RUN apt-get update && apt-get install -y libssl1.0.0 libpcre3 --no-install-recommends && rm -rf /var/lib/apt/lists/*
3+
RUN apt-get update \
4+
&& apt-get install -y --no-install-recommends \
5+
liblua5.3-0 \
6+
libpcre3 \
7+
libssl1.0.0 \
8+
&& rm -rf /var/lib/apt/lists/*
49

510
ENV HAPROXY_MAJOR 1.6
611
ENV HAPROXY_VERSION 1.6.11
712
ENV HAPROXY_MD5 844da4b553c887833550a008692e7a74
813

9-
# see http://sources.debian.net/src/haproxy/1.5.8-1/debian/rules/ for some helpful navigation of the possible "make" arguments
10-
RUN buildDeps='curl gcc libc6-dev libpcre3-dev libssl-dev make' \
11-
&& set -x \
14+
# see http://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
15+
RUN set -x \
16+
\
17+
&& buildDeps=' \
18+
gcc \
19+
libc6-dev \
20+
liblua5.3-dev \
21+
libpcre3-dev \
22+
libssl-dev \
23+
make \
24+
wget \
25+
' \
1226
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
13-
&& curl -SL "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" -o haproxy.tar.gz \
14-
&& echo "${HAPROXY_MD5} haproxy.tar.gz" | md5sum -c \
27+
\
28+
&& wget -O haproxy.tar.gz "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
29+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
1530
&& mkdir -p /usr/src/haproxy \
1631
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
1732
&& rm haproxy.tar.gz \
18-
&& make -C /usr/src/haproxy \
33+
\
34+
&& makeOpts=' \
1935
TARGET=linux2628 \
20-
USE_PCRE=1 PCREDIR= \
36+
USE_LUA=1 LUA_INC=/usr/include/lua5.3 \
2137
USE_OPENSSL=1 \
38+
USE_PCRE=1 PCREDIR= \
2239
USE_ZLIB=1 \
23-
all \
24-
install-bin \
40+
' \
41+
&& make -C /usr/src/haproxy -j "$(nproc)" all $makeOpts \
42+
&& make -C /usr/src/haproxy install-bin $makeOpts \
43+
\
2544
&& mkdir -p /usr/local/etc/haproxy \
2645
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
2746
&& rm -rf /usr/src/haproxy \
47+
\
2848
&& apt-get purge -y --auto-remove $buildDeps
2949

3050
COPY docker-entrypoint.sh /

1.6/alpine/Dockerfile

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,68 @@ ENV HAPROXY_MAJOR 1.6
44
ENV HAPROXY_VERSION 1.6.11
55
ENV HAPROXY_MD5 844da4b553c887833550a008692e7a74
66

7-
# see http://sources.debian.net/src/haproxy/1.5.8-1/debian/rules/ for some helpful navigation of the possible "make" arguments
7+
# https://www.lua.org/ftp/#source
8+
ENV LUA_VERSION=5.3.3 \
9+
LUA_SHA1=a0341bc3d1415b814cc738b2ec01ae56045d64ef
10+
11+
# see http://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
812
RUN set -x \
13+
\
914
&& apk add --no-cache --virtual .build-deps \
10-
curl \
15+
ca-certificates \
1116
gcc \
1217
libc-dev \
1318
linux-headers \
1419
make \
20+
openssl \
1521
openssl-dev \
1622
pcre-dev \
23+
readline-dev \
24+
tar \
1725
zlib-dev \
18-
&& curl -SL "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" -o haproxy.tar.gz \
19-
&& echo "${HAPROXY_MD5} haproxy.tar.gz" | md5sum -c \
20-
&& mkdir -p /usr/src \
21-
&& tar -xzf haproxy.tar.gz -C /usr/src \
22-
&& mv "/usr/src/haproxy-$HAPROXY_VERSION" /usr/src/haproxy \
26+
\
27+
# install Lua
28+
&& wget -O lua.tar.gz "https://www.lua.org/ftp/lua-$LUA_VERSION.tar.gz" \
29+
&& echo "$LUA_SHA1 *lua.tar.gz" | sha1sum -c \
30+
&& mkdir -p /usr/src/lua \
31+
&& tar -xzf lua.tar.gz -C /usr/src/lua --strip-components=1 \
32+
&& rm lua.tar.gz \
33+
&& make -C /usr/src/lua -j "$(getconf _NPROCESSORS_ONLN)" linux \
34+
&& make -C /usr/src/lua install \
35+
# put things we don't care about into a "trash" directory for purging
36+
INSTALL_BIN='/usr/src/lua/trash/bin' \
37+
INSTALL_CMOD='/usr/src/lua/trash/cmod' \
38+
INSTALL_LMOD='/usr/src/lua/trash/lmod' \
39+
INSTALL_MAN='/usr/src/lua/trash/man' \
40+
# ... and since it builds static by default, put those bits somewhere we can purge after we build haproxy
41+
INSTALL_INC='/usr/local/lua-install/inc' \
42+
INSTALL_LIB='/usr/local/lua-install/lib' \
43+
&& rm -rf /usr/src/lua \
44+
\
45+
# install HAProxy
46+
&& wget -O haproxy.tar.gz "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
47+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
48+
&& mkdir -p /usr/src/haproxy \
49+
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
2350
&& rm haproxy.tar.gz \
24-
&& make -C /usr/src/haproxy \
51+
\
52+
&& makeOpts=' \
2553
TARGET=linux2628 \
26-
USE_PCRE=1 PCREDIR= \
54+
USE_LUA=1 LUA_INC=/usr/local/lua-install/inc LUA_LIB=/usr/local/lua-install/lib \
2755
USE_OPENSSL=1 \
56+
USE_PCRE=1 PCREDIR= \
2857
USE_ZLIB=1 \
29-
all \
30-
install-bin \
58+
' \
59+
&& make -C /usr/src/haproxy -j "$(getconf _NPROCESSORS_ONLN)" all $makeOpts \
60+
&& make -C /usr/src/haproxy install-bin $makeOpts \
61+
\
62+
# purge the remnants of our static Lua
63+
&& rm -rf /usr/local/lua-install \
64+
\
3165
&& mkdir -p /usr/local/etc/haproxy \
3266
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
3367
&& rm -rf /usr/src/haproxy \
68+
\
3469
&& runDeps="$( \
3570
scanelf --needed --nobanner --recursive /usr/local \
3671
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \

1.7/Dockerfile

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,50 @@
1-
FROM debian:jessie
1+
FROM debian:jessie-backports
22

3-
RUN apt-get update && apt-get install -y libssl1.0.0 libpcre3 --no-install-recommends && rm -rf /var/lib/apt/lists/*
3+
RUN apt-get update \
4+
&& apt-get install -y --no-install-recommends \
5+
liblua5.3-0 \
6+
libpcre3 \
7+
libssl1.0.0 \
8+
&& rm -rf /var/lib/apt/lists/*
49

510
ENV HAPROXY_MAJOR 1.7
611
ENV HAPROXY_VERSION 1.7.2
712
ENV HAPROXY_MD5 7330b36f3764ebe409e9305803dc30e2
813

9-
# see http://sources.debian.net/src/haproxy/1.5.8-1/debian/rules/ for some helpful navigation of the possible "make" arguments
10-
RUN buildDeps='curl gcc libc6-dev libpcre3-dev libssl-dev make' \
11-
&& set -x \
14+
# see http://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
15+
RUN set -x \
16+
\
17+
&& buildDeps=' \
18+
gcc \
19+
libc6-dev \
20+
liblua5.3-dev \
21+
libpcre3-dev \
22+
libssl-dev \
23+
make \
24+
wget \
25+
' \
1226
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \
13-
&& curl -SL "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" -o haproxy.tar.gz \
14-
&& echo "${HAPROXY_MD5} haproxy.tar.gz" | md5sum -c \
27+
\
28+
&& wget -O haproxy.tar.gz "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
29+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
1530
&& mkdir -p /usr/src/haproxy \
1631
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
1732
&& rm haproxy.tar.gz \
18-
&& make -C /usr/src/haproxy \
33+
\
34+
&& makeOpts=' \
1935
TARGET=linux2628 \
20-
USE_PCRE=1 PCREDIR= \
36+
USE_LUA=1 LUA_INC=/usr/include/lua5.3 \
2137
USE_OPENSSL=1 \
38+
USE_PCRE=1 PCREDIR= \
2239
USE_ZLIB=1 \
23-
all \
24-
install-bin \
40+
' \
41+
&& make -C /usr/src/haproxy -j "$(nproc)" all $makeOpts \
42+
&& make -C /usr/src/haproxy install-bin $makeOpts \
43+
\
2544
&& mkdir -p /usr/local/etc/haproxy \
2645
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
2746
&& rm -rf /usr/src/haproxy \
47+
\
2848
&& apt-get purge -y --auto-remove $buildDeps
2949

3050
COPY docker-entrypoint.sh /

1.7/alpine/Dockerfile

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,68 @@ ENV HAPROXY_MAJOR 1.7
44
ENV HAPROXY_VERSION 1.7.2
55
ENV HAPROXY_MD5 7330b36f3764ebe409e9305803dc30e2
66

7-
# see http://sources.debian.net/src/haproxy/1.5.8-1/debian/rules/ for some helpful navigation of the possible "make" arguments
7+
# https://www.lua.org/ftp/#source
8+
ENV LUA_VERSION=5.3.3 \
9+
LUA_SHA1=a0341bc3d1415b814cc738b2ec01ae56045d64ef
10+
11+
# see http://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments
812
RUN set -x \
13+
\
914
&& apk add --no-cache --virtual .build-deps \
10-
curl \
15+
ca-certificates \
1116
gcc \
1217
libc-dev \
1318
linux-headers \
1419
make \
20+
openssl \
1521
openssl-dev \
1622
pcre-dev \
23+
readline-dev \
24+
tar \
1725
zlib-dev \
18-
&& curl -SL "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" -o haproxy.tar.gz \
19-
&& echo "${HAPROXY_MD5} haproxy.tar.gz" | md5sum -c \
20-
&& mkdir -p /usr/src \
21-
&& tar -xzf haproxy.tar.gz -C /usr/src \
22-
&& mv "/usr/src/haproxy-$HAPROXY_VERSION" /usr/src/haproxy \
26+
\
27+
# install Lua
28+
&& wget -O lua.tar.gz "https://www.lua.org/ftp/lua-$LUA_VERSION.tar.gz" \
29+
&& echo "$LUA_SHA1 *lua.tar.gz" | sha1sum -c \
30+
&& mkdir -p /usr/src/lua \
31+
&& tar -xzf lua.tar.gz -C /usr/src/lua --strip-components=1 \
32+
&& rm lua.tar.gz \
33+
&& make -C /usr/src/lua -j "$(getconf _NPROCESSORS_ONLN)" linux \
34+
&& make -C /usr/src/lua install \
35+
# put things we don't care about into a "trash" directory for purging
36+
INSTALL_BIN='/usr/src/lua/trash/bin' \
37+
INSTALL_CMOD='/usr/src/lua/trash/cmod' \
38+
INSTALL_LMOD='/usr/src/lua/trash/lmod' \
39+
INSTALL_MAN='/usr/src/lua/trash/man' \
40+
# ... and since it builds static by default, put those bits somewhere we can purge after we build haproxy
41+
INSTALL_INC='/usr/local/lua-install/inc' \
42+
INSTALL_LIB='/usr/local/lua-install/lib' \
43+
&& rm -rf /usr/src/lua \
44+
\
45+
# install HAProxy
46+
&& wget -O haproxy.tar.gz "http://www.haproxy.org/download/${HAPROXY_MAJOR}/src/haproxy-${HAPROXY_VERSION}.tar.gz" \
47+
&& echo "$HAPROXY_MD5 *haproxy.tar.gz" | md5sum -c \
48+
&& mkdir -p /usr/src/haproxy \
49+
&& tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1 \
2350
&& rm haproxy.tar.gz \
24-
&& make -C /usr/src/haproxy \
51+
\
52+
&& makeOpts=' \
2553
TARGET=linux2628 \
26-
USE_PCRE=1 PCREDIR= \
54+
USE_LUA=1 LUA_INC=/usr/local/lua-install/inc LUA_LIB=/usr/local/lua-install/lib \
2755
USE_OPENSSL=1 \
56+
USE_PCRE=1 PCREDIR= \
2857
USE_ZLIB=1 \
29-
all \
30-
install-bin \
58+
' \
59+
&& make -C /usr/src/haproxy -j "$(getconf _NPROCESSORS_ONLN)" all $makeOpts \
60+
&& make -C /usr/src/haproxy install-bin $makeOpts \
61+
\
62+
# purge the remnants of our static Lua
63+
&& rm -rf /usr/local/lua-install \
64+
\
3165
&& mkdir -p /usr/local/etc/haproxy \
3266
&& cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors \
3367
&& rm -rf /usr/src/haproxy \
68+
\
3469
&& runDeps="$( \
3570
scanelf --needed --nobanner --recursive /usr/local \
3671
| awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \

0 commit comments

Comments
 (0)