79 lines
1.7 KiB
Docker
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
|
|
|