-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
791b106
commit 108ce83
Showing
6 changed files
with
155 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,4 +14,4 @@ if [ "$1" = 'haproxy' ]; then | |
set -- haproxy -W -db "$@" | ||
fi | ||
|
||
exec "$@" | ||
exec "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# | ||
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh" | ||
# | ||
# PLEASE DO NOT EDIT IT DIRECTLY. | ||
# | ||
|
||
FROM cr.loongnix.cn/library/debian:buster-slim | ||
|
||
# roughly, https://salsa.debian.org/haproxy-team/haproxy/-/blob/732b97ae286906dea19ab5744cf9cf97c364ac1d/debian/haproxy.postinst#L5-6 | ||
RUN set -eux; \ | ||
groupadd --gid 99 --system haproxy; \ | ||
useradd \ | ||
--gid haproxy \ | ||
--home-dir /var/lib/haproxy \ | ||
--no-create-home \ | ||
--system \ | ||
--uid 99 \ | ||
haproxy \ | ||
; \ | ||
mkdir /var/lib/haproxy; \ | ||
chown haproxy:haproxy /var/lib/haproxy | ||
|
||
ENV HAPROXY_VERSION 2.9-dev8 | ||
ENV HAPROXY_URL https://www.haproxy.org/download/2.9/src/devel/haproxy-2.9-dev8.tar.gz | ||
ENV HAPROXY_SHA256 4cb71352d92d863f7b79c702ca0abaad37541d54b8ab79fd8ec9d8ade16d131b | ||
|
||
# see https://sources.debian.net/src/haproxy/jessie/debian/rules/ for some helpful navigation of the possible "make" arguments | ||
RUN set -eux; \ | ||
\ | ||
savedAptMark="$(apt-mark showmanual)"; \ | ||
apt-get update && apt-get install -y --no-install-recommends \ | ||
ca-certificates \ | ||
gcc \ | ||
libc6-dev \ | ||
liblua5.3-dev \ | ||
libpcre2-dev \ | ||
libssl-dev \ | ||
make \ | ||
wget \ | ||
; \ | ||
rm -rf /var/lib/apt/lists/*; \ | ||
\ | ||
wget -O haproxy.tar.gz "$HAPROXY_URL"; \ | ||
echo "$HAPROXY_SHA256 *haproxy.tar.gz" | sha256sum -c; \ | ||
mkdir -p /usr/src/haproxy; \ | ||
tar -xzf haproxy.tar.gz -C /usr/src/haproxy --strip-components=1; \ | ||
rm haproxy.tar.gz; \ | ||
\ | ||
makeOpts=' \ | ||
TARGET=linux-glibc \ | ||
USE_GETADDRINFO=1 \ | ||
USE_LUA=1 LUA_INC=/usr/include/lua5.3 \ | ||
USE_OPENSSL=1 \ | ||
USE_PCRE2=1 USE_PCRE2_JIT=1 \ | ||
USE_PROMEX=1 \ | ||
\ | ||
EXTRA_OBJS=" \ | ||
" \ | ||
'; \ | ||
# https://salsa.debian.org/haproxy-team/haproxy/-/commit/53988af3d006ebcbf2c941e34121859fd6379c70 | ||
dpkgArch="$(dpkg --print-architecture)"; \ | ||
case "$dpkgArch" in \ | ||
armel) makeOpts="$makeOpts ADDLIB=-latomic" ;; \ | ||
esac; \ | ||
\ | ||
nproc="$(nproc)"; \ | ||
eval "make -C /usr/src/haproxy -j '$nproc' all $makeOpts"; \ | ||
eval "make -C /usr/src/haproxy install-bin $makeOpts"; \ | ||
\ | ||
mkdir -p /usr/local/etc/haproxy; \ | ||
cp -R /usr/src/haproxy/examples/errorfiles /usr/local/etc/haproxy/errors; \ | ||
rm -rf /usr/src/haproxy; \ | ||
\ | ||
apt-mark auto '.*' > /dev/null; \ | ||
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ | ||
find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \ | ||
| awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' \ | ||
| sort -u \ | ||
| xargs -r dpkg-query --search \ | ||
| cut -d: -f1 \ | ||
| sort -u \ | ||
| xargs -r apt-mark manual \ | ||
; \ | ||
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ | ||
\ | ||
# smoke test | ||
haproxy -v | ||
|
||
# https://www.haproxy.org/download/1.8/doc/management.txt | ||
# "4. Stopping and restarting HAProxy" | ||
# "when the SIGTERM signal is sent to the haproxy process, it immediately quits and all established connections are closed" | ||
# "graceful stop is triggered when the SIGUSR1 signal is sent to the haproxy process" | ||
STOPSIGNAL SIGUSR1 | ||
|
||
COPY docker-entrypoint.sh /usr/local/bin/ | ||
ENTRYPOINT ["docker-entrypoint.sh"] | ||
|
||
USER haproxy | ||
|
||
# https://github.com/docker-library/haproxy/issues/200 | ||
WORKDIR /var/lib/haproxy | ||
|
||
CMD ["haproxy", "-f", "/usr/local/etc/haproxy/haproxy.cfg"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# This file is generated by the template. | ||
|
||
REGISTRY?=cr.loongnix.cn | ||
ORGANIZATION?=library | ||
REPOSITORY?=haproxy | ||
TAG?=2.9-dev | ||
|
||
IMAGE=$(REGISTRY)/$(ORGANIZATION)/$(REPOSITORY):$(TAG) | ||
|
||
|
||
default: image | ||
|
||
image: | ||
docker build \ | ||
-t $(IMAGE) \ | ||
. | ||
|
||
push: | ||
docker push $(IMAGE) | ||
docker push $(IMAGE)-buster |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/bin/sh | ||
set -e | ||
|
||
# first arg is `-f` or `--some-option` | ||
if [ "${1#-}" != "$1" ]; then | ||
set -- haproxy "$@" | ||
fi | ||
|
||
if [ "$1" = 'haproxy' ]; then | ||
shift # "haproxy" | ||
# if the user wants "haproxy", let's add a couple useful flags | ||
# -W -- "master-worker mode" (similar to the old "haproxy-systemd-wrapper"; allows for reload via "SIGUSR2") | ||
# -db -- disables background mode | ||
set -- haproxy -W -db "$@" | ||
fi | ||
|
||
exec "$@" |