mirror of
https://github.com/zabbix/zabbix-docker.git
synced 2025-01-09 15:18:28 +01:00
65 lines
1.5 KiB
Bash
Executable File
65 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -o pipefail
|
|
|
|
set +e
|
|
|
|
# Script trace mode
|
|
if [ "${DEBUG_MODE,,}" == "true" ]; then
|
|
set -o xtrace
|
|
fi
|
|
|
|
# Default directories
|
|
# Internal directory for TLS related files, used when TLS*File specified as plain text values
|
|
ZABBIX_INTERNAL_ENC_DIR="${ZABBIX_USER_HOME_DIR}/enc_internal"
|
|
|
|
file_process_from_env() {
|
|
local var_name=$1
|
|
local file_name=$2
|
|
local var_value=$3
|
|
|
|
if [ ! -z "$var_value" ]; then
|
|
echo -n "$var_value" > "${ZABBIX_INTERNAL_ENC_DIR}/$var_name"
|
|
file_name="${ZABBIX_INTERNAL_ENC_DIR}/${var_name}"
|
|
fi
|
|
|
|
if [ -n "$var_value" ]; then
|
|
export "$var_name"="$file_name"
|
|
fi
|
|
# Remove variable with plain text data
|
|
unset "${var_name%%FILE}"
|
|
}
|
|
|
|
prepare_zbx_web_service_config() {
|
|
export ZBX_ALLOWEDIP=${ZBX_ALLOWEDIP:="zabbix-server"}
|
|
|
|
file_process_from_env "ZBX_TLSCAFILE" "${ZBX_TLSCAFILE}" "${ZBX_TLSCA}"
|
|
|
|
file_process_from_env "ZBX_TLSCERTFILE" "${ZBX_TLSCERTFILE}" "${ZBX_TLSCERT}"
|
|
file_process_from_env "ZBX_TLSKEYFILE" "${ZBX_TLSKEYFILE}" "${ZBX_TLSKEY}"
|
|
}
|
|
|
|
clear_zbx_env() {
|
|
[[ "${ZBX_CLEAR_ENV}" == "false" ]] && return
|
|
|
|
for env_var in $(env | grep -E "^ZABBIX_"); do
|
|
unset "${env_var%%=*}"
|
|
done
|
|
}
|
|
|
|
prepare_web_service() {
|
|
echo "** Preparing Zabbix web service"
|
|
prepare_zbx_web_service_config
|
|
clear_zbx_env
|
|
}
|
|
|
|
#################################################
|
|
|
|
if [ "$1" == '/usr/sbin/zabbix_web_service' ]; then
|
|
prepare_web_service
|
|
fi
|
|
|
|
exec "$@"
|
|
|
|
#################################################
|