Skip to content

Commit 29796fa

Browse files
committed
Add missing s6-overlay files for 3.0, 3.1 and 3.2 branches.
1 parent 05df83c commit 29796fa

File tree

57 files changed

+909
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+909
-3
lines changed

3.0/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ LABEL Version 3.0.11
2424
LABEL RUN /usr/bin/docker -d IMAGE
2525

2626
ENV HAPROXY_BRANCH 3.0
27-
ENV HAPROXY_MINOR 3.0.11
27+
ENV HAPROXY_MINOR 3.0.11-test
2828
ENV HAPROXY_SHA256 a133e2d550c5fd9a849b5c7ab17bb945bcdad209ca140d41f45ebf31943ae783
2929
ENV HAPROXY_SRC_URL http://www.haproxy.org/download
3030

3.0/Dockerfile.api

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
FROM alpine:3.20
2+
3+
MAINTAINER Dinko Korunic <[email protected]>
4+
5+
LABEL Name HAProxy
6+
LABEL Release Community Edition
7+
LABEL Vendor HAProxy
8+
LABEL Version 3.3-dev8
9+
LABEL RUN /usr/bin/docker -d IMAGE
10+
11+
ENV HAPROXY_BRANCH 3.3
12+
ENV HAPROXY_MINOR 3.3-dev8
13+
ENV HAPROXY_SHA256 bbe414ef09d8b7091b139d1c0157840739aa24ad93851ea1fb815c135c198431
14+
ENV HAPROXY_SRC_URL http://www.haproxy.org/download
15+
16+
ENV HAPROXY_UID haproxy
17+
ENV HAPROXY_GID haproxy
18+
19+
ENV DATAPLANE_MINOR 3.2.4
20+
ENV DATAPLANE_URL https://github.com/haproxytech/dataplaneapi/releases/download
21+
22+
ARG TARGETPLATFORM
23+
24+
ARG S6_OVERLAY_VERSION=3.2.1.0
25+
ENV S6_OVERLAY_VERSION $S6_OVERLAY_VERSION
26+
ENV S6_READ_ONLY_ROOT=1
27+
ENV S6_USER=haproxy
28+
ENV S6_GROUP=haproxy
29+
30+
COPY /fs /
31+
32+
RUN apk add --no-cache ca-certificates jemalloc && \
33+
apk add --no-cache --virtual build-deps gcc libc-dev \
34+
linux-headers lua5.4-dev make openssl openssl-dev pcre2-dev tar xz \
35+
zlib-dev curl shadow jemalloc-dev && \
36+
curl -sfSL "${HAPROXY_SRC_URL}/${HAPROXY_BRANCH}/src/haproxy-${HAPROXY_MINOR}.tar.gz" -o haproxy.tar.gz && \
37+
echo "$HAPROXY_SHA256 *haproxy.tar.gz" | sha256sum -c - && \
38+
groupadd "$HAPROXY_GID" && \
39+
useradd -g "$HAPROXY_GID" "$HAPROXY_UID" && \
40+
mkdir -p /tmp/haproxy && \
41+
tar -xzf haproxy.tar.gz -C /tmp/haproxy --strip-components=1 && \
42+
rm -f haproxy.tar.gz && \
43+
make -C /tmp/haproxy -j"$(nproc)" TARGET=linux-musl CPU=generic USE_PCRE2=1 USE_PCRE2_JIT=1 \
44+
USE_TFO=1 USE_LINUX_TPROXY=1 USE_GETADDRINFO=1 \
45+
USE_LUA=1 LUA_LIB=/usr/lib/lua5.4 LUA_INC=/usr/include/lua5.4 \
46+
USE_PROMEX=1 USE_SLZ=1 \
47+
USE_OPENSSL=1 USE_PTHREAD_EMULATION=1 \
48+
USE_QUIC=1 USE_QUIC_OPENSSL_COMPAT=1 \
49+
ADDLIB=-ljemalloc \
50+
all && \
51+
make -C /tmp/haproxy TARGET=linux2628 install-bin install-man && \
52+
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy && \
53+
mkdir -p /var/lib/haproxy && \
54+
chown "$HAPROXY_UID:$HAPROXY_GID" /var/lib/haproxy && \
55+
mkdir -p /usr/local/etc/haproxy && \
56+
chown "$HAPROXY_UID:$HAPROXY_GID" /usr/local/etc/haproxy && \
57+
ln -s /usr/local/etc/haproxy /etc/haproxy && \
58+
cp -R /tmp/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors && \
59+
rm -rf /tmp/haproxy && \
60+
case "${TARGETPLATFORM}" in \
61+
"linux/arm64") API_ARCH=arm64 ;; \
62+
"linux/amd64") API_ARCH=x86_64 ;; \
63+
"linux/arm/v6") API_ARCH=arm ;; \
64+
"linux/arm/v7") API_ARCH=arm ;; \
65+
*) echo "ARG TARGETPLATFORM undeclared" >&2 && exit 1 ;; \
66+
esac && \
67+
curl -sfSL "${DATAPLANE_URL}/v${DATAPLANE_MINOR}/dataplaneapi_${DATAPLANE_MINOR}_linux_${API_ARCH}.tar.gz" -o dataplaneapi.tar.gz && \
68+
mkdir -p /tmp/dataplaneapi && \
69+
tar -xzf dataplaneapi.tar.gz -C /tmp/dataplaneapi && \
70+
rm -f dataplaneapi.tar.gz && \
71+
cp /tmp/dataplaneapi/dataplaneapi /usr/local/bin/dataplaneapi && \
72+
chown "$HAPROXY_UID:$HAPROXY_GID" /usr/local/etc/haproxy/dataplaneapi.yml && \
73+
mkdir -p /usr/local/var/lib/dataplaneapi && \
74+
chown "$HAPROXY_UID:$HAPROXY_GID" /usr/local/var/lib/dataplaneapi && \
75+
ln -s /usr/local/var/lib/dataplaneapi /var/lib/dataplaneapi && \
76+
rm -rf /tmp/dataplaneapi && \
77+
case "${TARGETPLATFORM}" in \
78+
"linux/arm64") S6_ARCH=aarch64 ;; \
79+
"linux/amd64") S6_ARCH=x86_64 ;; \
80+
"linux/arm/v6") S6_ARCH=arm ;; \
81+
"linux/arm/v7") S6_ARCH=armhf ;; \
82+
*) echo "ARG TARGETPLATFORM undeclared" >&2 && exit 1 ;; \
83+
esac && \
84+
curl -sS -L -o /tmp/s6-overlay-scripts.tar.xz "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" && \
85+
tar -C / -Jxpf /tmp/s6-overlay-scripts.tar.xz && \
86+
curl -sS -L -o /tmp/s6-overlay-binaries.tar.xz "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" && \
87+
tar -C / -Jxpf /tmp/s6-overlay-binaries.tar.xz && \
88+
rm -f /tmp/s6-overlay-scripts.tar.xz /tmp/s6-overlay-binaries.tar.xz && \
89+
chown -R "${S6_USER}:${S6_GROUP}" /init /etc/s6-overlay && \
90+
chmod u+x /init /etc/s6-overlay/scripts/* && \
91+
apk del build-deps && \
92+
apk add --no-cache openssl zlib lua5.4-libs pcre2 && \
93+
rm -f /var/cache/apk/*
94+
95+
EXPOSE 80
96+
EXPOSE 443
97+
EXPOSE 5555
98+
99+
ENTRYPOINT ["/start.sh"]

3.0/fs/etc/s6-overlay/s6-rc.d/dataplaneapi/dependencies.d/base

Whitespace-only changes.

3.0/fs/etc/s6-overlay/s6-rc.d/dataplaneapi/dependencies.d/haproxy

Whitespace-only changes.

3.0/fs/etc/s6-overlay/s6-rc.d/dataplaneapi/dependencies.d/sigusr1

Whitespace-only changes.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/command/with-contenv sh
2+
3+
DP_CONF="/usr/local/etc/haproxy/dataplaneapi.yml"
4+
5+
if grep -q "password: admin" "${DP_CONF}"; then
6+
echo "Generated admin password for Dataplaneapi"
7+
8+
PASS=$(tr -cd 'A-Za-z0-9!?%=' < /dev/urandom | head -c8)
9+
sed -i "s,password: admin,password: ${PASS},g" "${DP_CONF}"
10+
fi
11+
12+
SERVICE_DIRS="/run/s6-rc/servicedirs"
13+
HAP_CONF="/usr/local/etc/haproxy/haproxy.cfg"
14+
15+
if grep -q "user admin insecure-password admin" "${HAP_CONF}"; then
16+
echo "Generated admin password for Dataplaneapi"
17+
18+
PASS=$(tr -cd 'A-Za-z0-9!?%=' < /dev/urandom | head -c8)
19+
sed -i "s,user admin insecure-password admin,user admin insecure-password ${PASS},g" "${HAP_CONF}"
20+
21+
/package/admin/s6/command/s6-svc -2 "${SERVICE_DIRS}/haproxy"
22+
fi
23+
24+
MEMLIMIT=$(free -m | awk '/Mem:/ {printf "%d\n", int($2 / 3)}')
25+
26+
CG_LIMIT_FILE="/sys/fs/cgroup/memory/memory.limit_in_bytes"
27+
if [ -f "/sys/fs/cgroup/cgroup.controllers" ]; then
28+
CG_LIMIT_FILE="/sys/fs/cgroup/memory.max"
29+
fi
30+
31+
if [ -r "${CG_LIMIT_FILE}" ]; then
32+
if grep -q '^max$' "${CG_LIMIT_FILE}"; then
33+
MEMLIMIT_CG="${MEMLIMIT}"
34+
else
35+
MEMLIMIT_CG=$(awk '{printf "%d\n", int($1 / 1024 / 1024 / 3)}' "${CG_LIMIT_FILE}")
36+
fi
37+
38+
if [ "${MEMLIMIT_CG}" -gt 0 ]; then
39+
if [ "${MEMLIMIT_CG}" -lt "${MEMLIMIT}" ]; then
40+
MEMLIMIT="${MEMLIMIT_CG}"
41+
fi
42+
fi
43+
fi
44+
45+
export GOMEMLIMIT="${MEMLIMIT}MiB"
46+
47+
echo "Memory limit for Dataplaneapi: ${GOMEMLIMIT}"
48+
49+
exec /usr/local/bin/dataplaneapi -f=/usr/local/etc/haproxy/dataplaneapi.yml
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
longrun

3.0/fs/etc/s6-overlay/s6-rc.d/haproxy/dependencies.d/base

Whitespace-only changes.

3.0/fs/etc/s6-overlay/s6-rc.d/haproxy/dependencies.d/sigusr1

Whitespace-only changes.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/command/with-contenv sh
2+
3+
MEMLIMIT=$(free -m | awk '/Mem:/ {printf "%d\n", int($2 * 2 / 3)}')
4+
5+
CG_LIMIT_FILE="/sys/fs/cgroup/memory/memory.limit_in_bytes"
6+
if [ -f "/sys/fs/cgroup/cgroup.controllers" ]; then
7+
CG_LIMIT_FILE="/sys/fs/cgroup/memory.max"
8+
fi
9+
10+
if [ -r "${CG_LIMIT_FILE}" ]; then
11+
if grep -q '^max$' "${CG_LIMIT_FILE}"; then
12+
MEMLIMIT_CG="${MEMLIMIT}"
13+
else
14+
MEMLIMIT_CG=$(awk '{printf "%d\n", int($1 / 1024 / 1024 * 2 / 3)}' "${CG_LIMIT_FILE}")
15+
fi
16+
17+
if [ "${MEMLIMIT_CG}" -gt 0 ]; then
18+
if [ "${MEMLIMIT_CG}" -lt "${MEMLIMIT}" ]; then
19+
MEMLIMIT="${MEMLIMIT_CG}"
20+
fi
21+
fi
22+
fi
23+
24+
echo "Memory limit for HAProxy: ${MEMLIMIT}MiB"
25+
26+
exec /usr/local/sbin/haproxy -W -db -m "${MEMLIMIT}" -S /var/run/haproxy-master.sock,level,admin -f /etc/haproxy/haproxy.cfg

0 commit comments

Comments
 (0)