From 21db075bfd68623f34994e3595ccd5245f40c70d Mon Sep 17 00:00:00 2001 From: Alexandre-P Date: Mon, 17 Jan 2022 18:38:47 +0100 Subject: [PATCH] Make the delay we wait for MinIO start configurable (#45) * Make the delay we wait for MinIO start configurable * fix: update after review --- .../rootfs/opt/bitnami/scripts/libminio.sh | 48 ++++++++++++++++++- .../rootfs/opt/bitnami/scripts/minio-env.sh | 1 + 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh index 449663c00ccd..eb65e79bd276 100644 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/libminio.sh @@ -76,6 +76,52 @@ is_minio_running() { fi } +######################## +# Check if MinIO is live +# Globals: +# MINIO_PID +# Arguments: +# None +# Returns: +# Boolean +######################## +is_minio_live() { + local status_code + if [[ -z "${MINIO_PID:-}" ]]; then + false + else + if ! is_service_running "$MINIO_PID"; then + false + else + # We use cURL because we need to check the liveness before the client is configured + status_code=$(curl --write-out '%{http_code}' --silent --output /dev/null "${MINIO_SCHEME}://127.0.0.1:${MINIO_API_PORT_NUMBER}/minio/health/live") + if [[ "$status_code" = "200" ]]; then + true + else + false + fi + fi + fi +} + +######################## +# Wait for MinIO start +# Globals: +# MINIO_STARTUP_TIMEOUT +# Arguments: +# None +# Returns: +# None +######################## +wait_for_minio() { + local waited_time + waited_time=0 + while ! is_minio_live && [[ "$waited_time" -lt "$MINIO_STARTUP_TIMEOUT" ]]; do + sleep 5 + waited_time=$((waited_time+5)) + done +} + ######################## # Start MinIO in background and wait until it's ready # Globals: @@ -111,7 +157,7 @@ minio_start_bg() { "${exec}" "${args[@]}" >/dev/null 2>&1 & fi export MINIO_PID="$!" - sleep 10 + wait_for_minio } ######################## diff --git a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh index 40a0d7e3a78e..55ca03dd5b73 100644 --- a/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh +++ b/bitnami/minio/2021/debian-10/rootfs/opt/bitnami/scripts/minio-env.sh @@ -66,6 +66,7 @@ export MINIO_SCHEME="${MINIO_SCHEME:-http}" export MINIO_SKIP_CLIENT="${MINIO_SKIP_CLIENT:-no}" export MINIO_DISTRIBUTED_MODE_ENABLED="${MINIO_DISTRIBUTED_MODE_ENABLED:-no}" export MINIO_DEFAULT_BUCKETS="${MINIO_DEFAULT_BUCKETS:-}" +export MINIO_STARTUP_TIMEOUT=${MINIO_STARTUP_TIMEOUT:-10} # MinIO security export MINIO_FORCE_NEW_KEYS="${MINIO_FORCE_NEW_KEYS:-no}"