#!/usr/bin/env bash set -euo pipefail readonly ENTRYPOINT_LIBS="/usr/lib/docker-entrypoint" source "${ENTRYPOINT_LIBS}/debug.sh" source "${ENTRYPOINT_LIBS}/logging.sh" : "${JAVA:=/usr/bin/java}" readonly ZBX_GATEWAY_CONFIG="${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml" readonly ZABBIX_JAVA_DIR="/usr/sbin/zabbix_java" readonly JAVA_CLASSPATH="lib/*:bin/*:ext_lib/*" run_service() { info "** Preparing Zabbix Java Gateway" : "${ZBX_TIMEOUT:=3}" [[ -f "$ZBX_GATEWAY_CONFIG" ]] || error "Missing configuration file: $ZBX_GATEWAY_CONFIG" cd "$ZABBIX_JAVA_DIR" local -a java_opts=( -server "-Dlogback.configurationFile=${ZBX_GATEWAY_CONFIG}" ) if [[ -n "${ZBX_JAVA_OPTS:-}" ]]; then read -r -a extra_java_opts <<< "${ZBX_JAVA_OPTS}" java_opts+=("${extra_java_opts[@]}") fi local -a zabbix_opts=( "-Dsun.rmi.transport.tcp.responseTimeout=${ZBX_TIMEOUT}000" "-Dzabbix.listenPort=${ZBX_LISTEN_PORT:-10052}" "-Dzabbix.timeout=${ZBX_TIMEOUT}" ) [[ -n "${ZBX_SERVER:-}" ]] && zabbix_opts+=("-Dzabbix.server=${ZBX_SERVER}") [[ -n "${ZBX_LISTEN_IP:-}" ]] && zabbix_opts+=("-Dzabbix.listenIP=${ZBX_LISTEN_IP}") [[ -n "${ZBX_START_POLLERS:-}" ]] && zabbix_opts+=("-Dzabbix.startPollers=${ZBX_START_POLLERS}") [[ -n "${ZBX_PROPERTIES_FILE:-}" ]] && zabbix_opts+=("-Dzabbix.propertiesFile=${ZBX_PROPERTIES_FILE}") local -a cmd=( "$JAVA" "${java_opts[@]}" -classpath "$JAVA_CLASSPATH" "${zabbix_opts[@]}" com.zabbix.gateway.JavaGateway ) exec "${cmd[@]}" } if [[ $# -eq 0 || "${1:-}" == -* ]]; then run_service fi exec "$@"