1
0
mirror of https://github.com/Tecnativa/docker-socket-proxy synced 2024-12-30 10:28:10 +00:00

add config templating

This commit is contained in:
salty 2024-02-01 10:53:56 +01:00
parent 87428842ed
commit ce81071d86
No known key found for this signature in database
GPG Key ID: 9BDFF0EE3539F774
3 changed files with 37 additions and 2 deletions

View File

@ -9,6 +9,7 @@ ENV ALLOW_RESTARTS=0 \
COMMIT=0 \ COMMIT=0 \
CONFIGS=0 \ CONFIGS=0 \
CONTAINERS=0 \ CONTAINERS=0 \
DISABLE_IPV6=0 \
DISTRIBUTION=0 \ DISTRIBUTION=0 \
EVENTS=1 \ EVENTS=1 \
EXEC=0 \ EXEC=0 \
@ -30,4 +31,5 @@ ENV ALLOW_RESTARTS=0 \
TASKS=0 \ TASKS=0 \
VERSION=1 \ VERSION=1 \
VOLUMES=0 VOLUMES=0
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg COPY docker-entrypoint.sh /usr/local/bin/
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg.template

33
docker-entrypoint.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
set -e
# Normalize the input for DISABLE_IPV6 to lowercase
DISABLE_IPV6_LOWER=$(echo "$DISABLE_IPV6" | tr '[:upper:]' '[:lower:]')
# Check for different representations of 'true' and set BIND_CONFIG
case "$DISABLE_IPV6_LOWER" in
1|true|yes)
BIND_CONFIG=":2375"
;;
*)
BIND_CONFIG="[::]:2375 v4v6"
;;
esac
# Process the HAProxy configuration template using sed
sed "s/\${BIND_CONFIG}/$BIND_CONFIG/g" /usr/local/etc/haproxy/haproxy.cfg.template > /usr/local/etc/haproxy/haproxy.cfg
# 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 "$@"

View File

@ -44,7 +44,7 @@ backend docker-events
timeout server 0 timeout server 0
frontend dockerfrontend frontend dockerfrontend
bind :::2375 v4v6 bind ${BIND_CONFIG}
http-request deny unless METH_GET || { env(POST) -m bool } http-request deny unless METH_GET || { env(POST) -m bool }
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/((stop)|(restart)|(kill)) } { env(ALLOW_RESTARTS) -m bool } http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/((stop)|(restart)|(kill)) } { env(ALLOW_RESTARTS) -m bool }
http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/start } { env(ALLOW_START) -m bool } http-request allow if { path,url_dec -m reg -i ^(/v[\d\.]+)?/containers/[a-zA-Z0-9_.-]+/start } { env(ALLOW_START) -m bool }