This commit is contained in:
fix 2021-03-09 22:08:12 +01:00
parent 36db8d7f6b
commit 1ee095d1af
4 changed files with 100 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.env

78
Dockerfile Normal file
View File

@ -0,0 +1,78 @@
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
COPY --from=builder /haproxy/haproxy /haproxy
ENTRYPOINT \
(\
grep -qE '^haproxy:x:'"${UID}"':haproxy$' /etc/group || addgroup -g "${GID}" haproxy\
) && \
(\
grep -qE '^haproxy:x:'"${UID}"':'"${GID}"':.*$' /etc/passwd || adduser -D -u "${UID}" -G haproxy haproxy \
) && \
chmod 700 /etc/haproxy && chown haproxy:haproxy /etc/haproxy
CMD su haproxy -c "/haproxy -f /haproxy"

18
docker-compose.yaml Normal file
View File

@ -0,0 +1,18 @@
version: '3'
services:
haproxy:
build:
context: ./
args:
- HAPROXY_REPO=${HAPROXY_REPO}
container_name: haproxy
image: haproxy:local
logging:
driver: journald
options:
tag: haproxy
restart: unless-stopped
ports:
- 8443:8443
volumes:
- ${HAPROXY_CONFIG_FILE_PATH}:/etc/haproxy/haproxy.cfg:ro

3
env.dist Normal file
View File

@ -0,0 +1,3 @@
HAPROXY_REPO='https://scm.f1x.online/mirrors/haproxy.git'
HAPROXY_VERSION=
HAPROXY_CONFIG_FILE_PATH=/path/to/haproxy.conf