30 lines
900 B
Bash
30 lines
900 B
Bash
wait_for_api_ready() {
|
|
local service_name="$1"
|
|
local container_name="$2"
|
|
local port="$3"
|
|
local path="$4"
|
|
local network="${5,,}"
|
|
local max_retries=30 # Máximo de intentos (30 segundos)
|
|
local retries=0
|
|
local url="http://$container_name:$port$path"
|
|
|
|
# echo "⏳ Esperando a que $service_name devuelva exactamente 'true' en $url..."
|
|
|
|
while [[ $retries -lt $max_retries ]]; do
|
|
response=$(docker run --rm --network="$network" curlimages/curl -s "$url" || echo "error")
|
|
|
|
# echo "🔍 Respuesta recibida de $service_name: '$response'"
|
|
|
|
if [[ "$response" == "true" ]]; then
|
|
# echo "✅ Conectado al servicio $service_name → $url!"
|
|
return 0
|
|
fi
|
|
|
|
sleep 1
|
|
((retries++))
|
|
done
|
|
|
|
echo "❌ ERROR: $service_name no respondió con 'true' en $url después de $max_retries intentos."
|
|
exit 1
|
|
}
|