From 1ed59957a37cdddc5f970060669229b71caf0e3b Mon Sep 17 00:00:00 2001 From: Amir Zarrinkafsh Date: Tue, 24 Nov 2020 13:04:06 +1100 Subject: [PATCH] [BUGFIX] Fix Docker healthcheck script (#1485) * [MISC] Update Docker healthcheck script This change now determines the host for Docker healthcheck from the `configuration.yml` that Authelia is started with. The script has also been run through shellcheck and terminated with a newline in hopes to resolve a number of unreproducible issues. * Fix healthcheck failing because of CRLF in configuration.yml (#1483) The configuration.yml might contain CRLF characters. If that's the case, they are included in the results of sed, which breaks the healthcheck, so remove any CR characters in the host/port variables. Co-authored-by: Berisan --- healthcheck.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/healthcheck.sh b/healthcheck.sh index ab3169af1..e75dac532 100755 --- a/healthcheck.sh +++ b/healthcheck.sh @@ -1,17 +1,22 @@ #!/bin/sh -AUTHELIA_CONFIG=$(ps | grep authelia | awk '{print $6}' | head -1) -AUTHELIA_SCHEME=$(cat "${AUTHELIA_CONFIG}" | grep ^tls) -AUTHELIA_PORT=$(cat "${AUTHELIA_CONFIG}" | grep ^port | sed -e 's/port: //') +AUTHELIA_CONFIG=$(pgrep -af authelia | awk '{print $4}') +AUTHELIA_SCHEME=$(grep ^tls "${AUTHELIA_CONFIG}") +AUTHELIA_HOST=$(grep ^host "${AUTHELIA_CONFIG}" | sed -e 's/host: //' -e 's/\r//') +AUTHELIA_PORT=$(grep ^port "${AUTHELIA_CONFIG}" | sed -e 's/port: //' -e 's/\r//') -if [[ -z ${AUTHELIA_PORT} ]]; then - AUTHELIA_PORT=9091 -fi - -if [[ -z ${AUTHELIA_SCHEME} ]]; then +if [ -z "${AUTHELIA_SCHEME}" ]; then AUTHELIA_SCHEME=http else AUTHELIA_SCHEME=https fi -wget --quiet --tries=1 --spider ${AUTHELIA_SCHEME}://localhost:${AUTHELIA_PORT}/api/state || exit 1 \ No newline at end of file +if [ -z "${AUTHELIA_HOST}" ] || [ "${AUTHELIA_HOST}" = "0.0.0.0" ]; then + AUTHELIA_HOST=localhost +fi + +if [ -z "${AUTHELIA_PORT}" ]; then + AUTHELIA_PORT=9091 +fi + +wget --quiet --tries=1 --spider "${AUTHELIA_SCHEME}://${AUTHELIA_HOST}:${AUTHELIA_PORT}/api/state" || exit 1