tacticalrmm/docker/containers/tactical-nats/entrypoint.sh

79 lines
1.8 KiB
Bash
Raw Normal View History

2020-11-24 14:33:34 +00:00
#!/usr/bin/env bash
2020-11-22 17:03:40 +00:00
set -e
2021-04-04 00:51:42 +00:00
: "${DEV:=0}"
: "${NATS_CONFIG_CHECK_INTERVAL:=1}"
2021-04-04 00:51:42 +00:00
if [ "${DEV}" = 1 ]; then
NATS_CONFIG=/workspace/api/tacticalrmm/nats-rmm.conf
2021-11-13 21:30:01 +00:00
NATS_API_CONFIG=/workspace/api/tacticalrmm/nats-api.conf
2021-04-04 00:51:42 +00:00
else
NATS_CONFIG="${TACTICAL_DIR}/api/nats-rmm.conf"
2021-11-13 21:30:01 +00:00
NATS_API_CONFIG="${TACTICAL_DIR}/api/nats-api.conf"
2021-04-04 00:51:42 +00:00
fi
2020-11-25 04:24:26 +00:00
sleep 15
until [ -f "${TACTICAL_READY_FILE}" ]; do
echo "waiting for init container to finish install or update..."
sleep 10
2020-11-23 05:15:00 +00:00
done
config_watcher="$(cat << EOF
while true; do
sleep ${NATS_CONFIG_CHECK_INTERVAL};
if [[ ! -z \${NATS_CHECK} ]]; then
NATS_RELOAD=\$(date -r '${NATS_CONFIG}')
if [[ \$NATS_RELOAD == \$NATS_CHECK ]]; then
:
else
nats-server --signal reload;
NATS_CHECK=\$(date -r '${NATS_CONFIG}');
fi
else NATS_CHECK=\$(date -r '${NATS_CONFIG}');
fi
done
EOF
)"
echo "${config_watcher}" > /usr/local/bin/config_watcher.sh
chmod +x /usr/local/bin/config_watcher.sh
2020-11-22 17:03:40 +00:00
supervisor_config="$(cat << EOF
[supervisord]
nodaemon=true
logfile=/tmp/supervisord.log
pidfile=/tmp/supervisord.pid
2020-11-22 17:03:40 +00:00
[include]
files = /etc/supervisor/conf.d/*.conf
[program:nats-server]
2021-01-16 02:05:49 +00:00
command=nats-server --config ${NATS_CONFIG}
2020-11-25 04:24:26 +00:00
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
2020-11-22 17:03:40 +00:00
redirect_stderr=true
2020-11-23 05:15:00 +00:00
[program:config-watcher]
command=/bin/bash /usr/local/bin/config_watcher.sh
startsecs=10
autorestart=true
startretries=1
2021-01-16 02:05:49 +00:00
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true
2021-11-13 21:30:01 +00:00
[program:nats-api]
command=/bin/bash -c "/usr/local/bin/nats-api -config ${NATS_API_CONFIG}"
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
redirect_stderr=true
2020-11-22 17:03:40 +00:00
EOF
)"
echo "${supervisor_config}" > /etc/supervisor/conf.d/supervisor.conf
2020-11-23 05:15:00 +00:00
# run supervised processes
2021-01-16 02:05:49 +00:00
/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf