From aac9975a019fde4f6af19ae2a105a2f7c7c2170f Mon Sep 17 00:00:00 2001 From: Paolo Asperti Date: Mon, 13 Jun 2022 09:14:07 +0200 Subject: [PATCH] fix s6 --- Dockerfile.amd64 | 8 ++--- Dockerfile.arm | 8 ++--- Dockerfile.arm64 | 8 ++--- rootfs/etc/services.d/zabbix-agent2/finish | 8 +++++ rootfs/etc/services.d/zabbix-agent2/run | 38 ++++++++++++++++++++++ run.sh | 22 ------------- 6 files changed, 52 insertions(+), 40 deletions(-) create mode 100755 rootfs/etc/services.d/zabbix-agent2/finish create mode 100755 rootfs/etc/services.d/zabbix-agent2/run delete mode 100644 run.sh diff --git a/Dockerfile.amd64 b/Dockerfile.amd64 index 57752a9..a94b984 100644 --- a/Dockerfile.amd64 +++ b/Dockerfile.amd64 @@ -3,10 +3,6 @@ FROM $BUILD_FROM ENV LANG C.UTF-8 -# Copy scripts for add-on -COPY run.sh / +COPY rootfs / -RUN apk add -U jq zabbix-agent2=6.0.5-r0 sudo && \ - chmod a+x /run.sh - -CMD [ "/run.sh" ] +RUN apk add -U zabbix-agent2=6.0.5-r0 sudo diff --git a/Dockerfile.arm b/Dockerfile.arm index 7935876..181c120 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -3,10 +3,6 @@ FROM $BUILD_FROM ENV LANG C.UTF-8 -# Copy scripts for add-on -COPY run.sh / +COPY rootfs / -RUN apk add -U jq zabbix-agent2=6.0.5-r0 sudo && \ - chmod a+x /run.sh - -CMD [ "/run.sh" ] +RUN apk add -U zabbix-agent2=6.0.5-r0 sudo diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 index 440379b..19f6177 100644 --- a/Dockerfile.arm64 +++ b/Dockerfile.arm64 @@ -3,10 +3,6 @@ FROM $BUILD_FROM ENV LANG C.UTF-8 -# Copy scripts for add-on -COPY run.sh / +COPY rootfs / -RUN apk add -U jq zabbix-agent2=6.0.5-r0 sudo && \ - chmod a+x /run.sh - -CMD [ "/run.sh" ] +RUN apk add -U zabbix-agent2=6.0.5-r0 sudo diff --git a/rootfs/etc/services.d/zabbix-agent2/finish b/rootfs/etc/services.d/zabbix-agent2/finish new file mode 100755 index 0000000..8b316e1 --- /dev/null +++ b/rootfs/etc/services.d/zabbix-agent2/finish @@ -0,0 +1,8 @@ +#!/usr/bin/execlineb -S0 +# ============================================================================== +# Take down the S6 supervision tree when zabbix-agent2 fails +# ============================================================================== +if { s6-test ${1} -ne 0 } +if { s6-test ${1} -ne 256 } + +s6-svscanctl -t /var/run/s6/services \ No newline at end of file diff --git a/rootfs/etc/services.d/zabbix-agent2/run b/rootfs/etc/services.d/zabbix-agent2/run new file mode 100755 index 0000000..ef4709d --- /dev/null +++ b/rootfs/etc/services.d/zabbix-agent2/run @@ -0,0 +1,38 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Start zabbix-agent2 service if enabled +# ============================================================================== + +set -e + +CUSTOM_CFG_PATH=/share/zabbix-agent2 + +SERVER="$(bashio::config 'server')" +HOSTNAME="$(bashio::config 'hostname')" + +if [ ! -d "$CUSTOM_CFG_PATH" ] ; then + bashio::log.info "Creating a folder for custom configuration" + mkdir -p "$CUSTOM_CFG_PATH" +fi + +echo " +Server=$SERVER +ServerActive=$SERVER +Hostname=$HOSTNAME +LogType=console +PidFile=/var/run/zabbix/zabbix_agent2.pid +Include=${CUSTOM_CFG_PATH}/*.conf +" > /etc/zabbix/zabbix_agent2.conf + +bashio::log.info "Starting zabbix-agent2" +sudo -u zabbix zabbix_agent2 -f & +AGENT_PID=$! + +# Register stop +function stop_agent() { + killall zabbix_agent2 + exit 0 +} +trap "stop_agent" SIGTERM SIGHUP + +wait "${AGENT_PID}" diff --git a/run.sh b/run.sh deleted file mode 100644 index b9a7b14..0000000 --- a/run.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -set -e - -CONFIG_PATH=/data/options.json -CUSTOM_CFG_PATH=/share/zabbix-agent2 - -SERVER=$(jq --raw-output ".server" $CONFIG_PATH) -HOSTNAME=$(jq --raw-output ".hostname" $CONFIG_PATH) - -if [ ! -d "$CUSTOM_CFG_PATH" ] ; then - mkdir -p "$CUSTOM_CFG_PATH" -fi - -echo " -Server=$SERVER -ServerActive=$SERVER -Hostname=$HOSTNAME -LogType=console -Include=${CUSTOM_CFG_PATH}/*.conf -" > /etc/zabbix/zabbix_agent2.conf - -sudo -u zabbix zabbix_agent2 -f