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