Skip to content

Commit

Permalink
Merge pull request #232 from infosiftr/restore-2.0
Browse files Browse the repository at this point in the history
Restore 2.0 (not yet EOL)
  • Loading branch information
yosifkit authored May 23, 2024
2 parents 67485bd + 7eb71e6 commit fa5d16b
Show file tree
Hide file tree
Showing 8 changed files with 175 additions and 15 deletions.
114 changes: 114 additions & 0 deletions 2.0/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions 2.0/docker-entrypoint.sh
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 "$@"
20 changes: 10 additions & 10 deletions Dockerfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ ENV HAPROXY_SHA256 {{ .sha256 }}
# Since 5.4 is supported on haproxy, better use it now, but only for
# newer versions since there could be some minor incompatibilities
# for existing scripts: https://www.lua.org/manual/5.4/manual.html#8
if ([ "2.2", "2.4", "2.6", "2.8" ] | index(env.version)) then
if ([ "2.0", "2.2", "2.4", "2.6", "2.8" ] | index(env.version)) then
"5.3"
else
"5.4"
Expand All @@ -81,7 +81,7 @@ RUN set -eux; \
pcre2-dev \
readline-dev \
tar \
{{ if ([ "2.2" ] | index(env.version)) then ( -}}
{{ if ([ "2.0", "2.2" ] | index(env.version)) then ( -}}
zlib-dev \
{{ ) else "" end -}}
; \
Expand All @@ -95,7 +95,7 @@ RUN set -eux; \
libssl-dev \
make \
wget \
{{ if ([ "2.2" ] | index(env.version)) then ( -}}
{{ if ([ "2.0", "2.2" ] | index(env.version)) then ( -}}
zlib1g-dev \
{{ ) else "" end -}}
; \
Expand All @@ -110,7 +110,7 @@ RUN set -eux; \
\
{{
def haproxy_target:
if env.variant == "alpine" then
if env.variant == "alpine" and env.version != "2.0" then
"linux-musl"
else
"linux-glibc"
Expand All @@ -122,15 +122,15 @@ RUN set -eux; \
USE_LUA=1 LUA_INC=/usr/include/lua{{ lua }}{{ if env.variant == "alpine" then (" LUA_LIB=/usr/lib/lua" + lua) else "" end }} \
USE_OPENSSL=1 \
USE_PCRE2=1 USE_PCRE2_JIT=1 \
{{ if ([ "2.2" ] | index(env.version)) then ( -}}
{{ if ([ "2.0", "2.2" ] | index(env.version)) then ( -}}
USE_ZLIB=1 \
{{ ) else "" end -}}
{{ if ([ "2.2" ] | index(env.version) | not) then ( -}}
{{ if ([ "2.0", "2.2" ] | index(env.version) | not) then ( -}}
USE_PROMEX=1 \
{{ ) else "" end -}}
\
EXTRA_OBJS=" \
{{ if [ "2.2" ] | index(env.version) then ( -}}
{{ if [ "2.0", "2.2" ] | index(env.version) then ( -}}
# see https://github.com/docker-library/haproxy/issues/94#issuecomment-505673353 for more details about prometheus support
contrib/prometheus-exporter/service-prometheus.o \
{{ ) else "" end -}}
Expand Down Expand Up @@ -188,18 +188,18 @@ RUN set -eux; \
STOPSIGNAL SIGUSR1

COPY docker-entrypoint.sh /usr/local/bin/
{{ if [ "2.2" ] | index(env.version) then ( -}}
{{ if [ "2.0", "2.2" ] | index(env.version) then ( -}}
RUN ln -s usr/local/bin/docker-entrypoint.sh / # backwards compat
{{ ) else "" end -}}
ENTRYPOINT ["docker-entrypoint.sh"]

{{ if [ "2.2" ] | index(env.version) then ( -}}
{{ if [ "2.0", "2.2" ] | index(env.version) then ( -}}
# no USER for backwards compatibility (to try to avoid breaking existing users)
{{ ) else ( -}}
USER haproxy
{{ ) end -}}

{{ if [ "2.2", "2.4", "2.6" ] | index(env.version) then ( -}}
{{ if [ "2.0", "2.2", "2.4", "2.6" ] | index(env.version) then ( -}}
# no WORKDIR for backwards compatibility (to try to avoid breaking existing users)
{{ ) else ( -}}
# https://github.com/docker-library/haproxy/issues/200
Expand Down
9 changes: 7 additions & 2 deletions apply-templates.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,26 @@ generated_warning() {
}

for version; do
rm -rf "$version/"

for variant in '' alpine; do
# 2.2 can't be built on Alpine greater than 3.16
# 2.0, 2.2 can't be built on Alpine greater than 3.16
# OpenSSL 3 incompatibilities (https://github.com/haproxy/haproxy/issues/1276)
# but Alpine 3.16 is end of life
if [ "$version" = '2.2' ] && [ "$variant" = 'alpine' ]; then
if { [ "$version" = '2.0' ] || [ "$version" = '2.2' ]; } && [ "$variant" = 'alpine' ]; then
continue
fi
export version variant
dir="$version${variant:+/$variant}"

echo "processing $dir ..."
mkdir -p "$dir"

{
generated_warning
gawk -f "$jqt" Dockerfile.template
} > "$dir/Dockerfile"

cp -a docker-entrypoint.sh "$dir/"
done
done
17 changes: 17 additions & 0 deletions docker-entrypoint.sh
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 "$@"
2 changes: 1 addition & 1 deletion generate-stackbrew-library.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ for version; do
export variant
dir="$version${variant:+/$variant}"
if [ ! -d "$dir" ]; then
# 2.2 can't be built on supported Alpine release, so it has no Alpine
# 2.0, 2.2 can't be built on a supported Alpine release
continue
fi

Expand Down
6 changes: 6 additions & 0 deletions versions.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
{
"2.0": {
"debian": "buster-slim",
"sha256": "95334c52ace9ae139e66d60240633be8bb4eed1babedfcc6cb947092e00c447c",
"url": "https://www.haproxy.org/download/2.0/src/haproxy-2.0.35.tar.gz",
"version": "2.0.35"
},
"2.2": {
"debian": "bullseye-slim",
"sha256": "24f9eec04ee8d9e3652370be3db9852dec8aa650b3c8eeae969300c86b6fda5b",
Expand Down
5 changes: 3 additions & 2 deletions versions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ versions=( "${versions[@]%/}" )
defaultDebianSuite='bookworm-slim'
declare -A debianSuite=(
[2.2]='bullseye-slim'
[2.0]='buster-slim'
)
defaultAlpineVersion='3.20'
declare -A alpineVersion=(
Expand All @@ -36,8 +37,8 @@ for version in "${versions[@]}"; do
debian: env.debian,
alpine: env.alpine,
}
# remove Alpine from 2.2 since it cannot be built on any active Alpine release
| if env.version == "2.2" then del(.alpine) else . end
# remove Alpine from versions where it cannot be built on any active Alpine release
| if [ "2.0", "2.2" ] | index(env.version) then del(.alpine) else . end
'
)"

Expand Down

0 comments on commit fa5d16b

Please sign in to comment.