docker-haproxy/Dockerfile
2021-03-10 16:26:32 +01:00

79 lines
1.7 KiB
Docker

FROM alpine:3 as builder
ARG HAPROXY_VERSION=
ARG HAPROXY_REPO
RUN \
apk update --no-cache && \
apk add --no-cache --virtual \
build-deps \
ca-certificates \
gcc \
git \
libc-dev \
linux-headers \
lua5.3-dev \
make \
openssl \
openssl-dev \
pcre2-dev \
tar \
zlib-dev \
curl \
shadow \
&& \
git config --global advice.detachedHead false
RUN \
echo "selected repo: ${HAPROXY_REPO}" && \
if [ -z "${HAPROXY_VERSION}" ]; then \
HAPROXY_VERSION=$( \
git ls-remote "${HAPROXY_REPO}" | \
awk '$2 ~ /^refs\/tags\/v[0-9]+\.[0-9]+\.[0-9]+$/ { print substr($2,11) }' | sort -V | tail -n1 \
) ; \
fi && \
echo "selected branch: ${HAPROXY_VERSION}" && \
cd / && \
git clone \
--branch="${HAPROXY_VERSION}" \
--depth=1 \
"${HAPROXY_REPO}" \
haproxy && \
cd haproxy && \
make \
-j"$(nproc)" \
TARGET=linux-musl \
CPU=generic \
USE_PCRE2=1 \
USE_PCRE2_JIT=1 \
USE_REGPARM=1 \
USE_OPENSSL=1 \
USE_ZLIB=1 \
USE_TFO=1 \
USE_LINUX_TPROXY=1 \
USE_GETADDRINFO=1 \
USE_LUA=1 \
LUA_LIB=/usr/lib/lua5.3 \
LUA_INC=/usr/include/lua5.3 \
EXTRA_OBJS="contrib/prometheus-exporter/service-prometheus.o" \
all
FROM alpine:3
ENV UID=1000
ENV GID=1000
RUN \
apk update --no-cache && \
apk add --no-cache --virtual \
openssl \
zlib \
lua5.3-libs \
pcre2
COPY --from=builder /haproxy/haproxy /haproxy
COPY docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT /docker-entrypoint.sh