[WIP] Docker templater mostly working (to be squashed)

This commit is contained in:
Kevin Baensch 2022-12-16 14:17:11 +01:00
parent d1c6d54a22
commit ed71970153
7 changed files with 77 additions and 56 deletions

View file

@ -1,16 +1,33 @@
#!/usr/bin/env bash
set -e
DOCKER_SOCK_PATH="${DOCKER_SOCK_PATH:-/tmp/docker.sock}"
DOCKER_CADDY_NAME="${DOCKER_CADDY_NAME:-proxy}"
DOCKER_CADDY_PORT="${DOCKER_CADDY_PORT:-2020}"
TEMPLATE='reverse_proxy $LOCAL_WEB_HOST ${LOCAL_IP}:$LOCAL_WEB_PORT'
WRAP_START='{\n admin :2020\n}\n'
WRAP_END='\n'
TEMPLATE='${LOCAL_WEB_HOST} {\n reverse_proxy ${LOCAL_IP}:$LOCAL_WEB_PORT\n}'
SEPARATOR='\n'
OUT='/config/Caddyfile'
label_hook() {
LOCAL_WEB_PORT="${LOCAL_WEB_PORT:-80}"
}
template_hook() {
if grep -q '^reverse_proxy [^\s] [:.0-9a-e]\+:\d+$' <<< "${PARTIAL_RESULT}"
printf "%s" "${PARTIAL_RESULT}"
if grep '^[^ ]\+ {\\n reverse_proxy \(?::\|[.0-9a-e]\)\+\:[0-9]\+\\n}$' <<< "${PARTIAL_RESULT}"
then
return 0;
fi
return 1;
}
# finally_hook() {
# if curl --silent -g "${DOCKER_CADDY_NAME}:${DOCKER_CADDY_PORT}/load"
# then
# printf "Updated Caddy Config"
# else
# printf "Failed to update Caddy Config"
# fi
# }

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -e
HOST_CONF_PATH="${HOST_CONF_PATH:-/tmp/hosts}"
HOST_CONF_PATH="${HOST_CONF_PATH:-/config/hosts}"
RESOLVE_DOCKERHOST="${RESOLVE_DOCKERHOST:-false}"
DOCKER_HOSTNAME_VAR="${DOCKER_HOSTNAME_VAR:-LOCAL_WEB_HOST}"
@ -31,8 +31,8 @@ else
OUT="${HOST_CONF_OUT}"
fi
check_template() {
if grep -q '^[:.0-9a-e]\+ [^\s]\+ # Added by hostman$' <<< "${PARTIAL_RESULT}"
template_hook() {
if grep -q '^[:.0-9a-e]\+ [^ ]\+ # Added by hostman$' <<< "${PARTIAL_RESULT}"
then
return 0;
fi

View file

@ -1,6 +1,21 @@
#!/usr/bin/env bash
EXCLUDE_USERPASS="${EXCLUDE_USERPASS:-false}"
set -e
WRAP_START='[\n'
TEMPLATE=' { type: "${LOCAL_DB_TYPE}", user: "${LOCAL_DB_USER}", password: "${LOCAL_DB_PASSWORD}", host: "${LOCAL_DB_HOST}", port: "${LOCAL_DB_PORT}" }'
if ${EXCLUDE_USERPASS}
then
TEMPLATE=' { type: "${LOCAL_DB_TYPE}", host: "${LOCAL_DB_HOST}", port: "${LOCAL_DB_PORT}" }'
else
TEMPLATE=' { type: "${LOCAL_DB_TYPE}", user: "${LOCAL_DB_USER}", password: "${LOCAL_DB_PASSWORD}", host: "${LOCAL_DB_HOST}", port: "${LOCAL_DB_PORT}" }'
fi
SEPARATOR=',\n'
WRAP_END='\n]'
OUT="/config/sqlproxy.json"
template_hook() {
if grep -q 'type: "(?mysql|psql)".*host: ".+", port: "\d+"'
then
return 0
fi
return 1
}