changes to the startup

This commit is contained in:
2026-07-15 21:35:48 +02:00
parent 5cabc754fa
commit 8badc7b9f0
+14 -7
View File
@@ -65,23 +65,30 @@ if (!appDb.getUser(appUser)) {
}
wait_for_mongo_ready() {
local timeout_seconds=60
local timeout_seconds=180
local interval=2
local elapsed=0
local mongo_container_id=""
local health_status=""
mongo_container_id="$("${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" ps -q mongodb 2>/dev/null || true)"
if [ -z "$mongo_container_id" ]; then
echo "[FEHLER] MongoDB-Container wurde nicht gefunden." >&2
return 1
fi
while [ $elapsed -lt $timeout_seconds ]; do
if "${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" exec -T mongodb mongosh --quiet \
--username "$MONGO_INITDB_ROOT_USERNAME" \
--password "$MONGO_INITDB_ROOT_PASSWORD" \
--authenticationDatabase admin \
--eval "db.adminCommand('ping').ok" >/dev/null 2>&1; then
health_status="$(${DOCKER_CMD[@]} inspect -f '{{if .State.Health}}{{.State.Health.Status}}{{else}}{{.State.Status}}{{end}}' "$mongo_container_id" 2>/dev/null || true)"
if [ "$health_status" = "healthy" ] || [ "$health_status" = "running" ]; then
return 0
fi
sleep $interval
elapsed=$((elapsed + interval))
done
echo "[FEHLER] MongoDB wurde nicht rechtzeitig erreichbar." >&2
echo "[FEHLER] MongoDB wurde nicht rechtzeitig gesund. Status: ${health_status:-unbekannt}" >&2
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" ps mongodb >&2 || true
"${DOCKER_CMD[@]}" compose --env-file "$SECRETS_FILE" logs --tail 80 mongodb >&2 || true
return 1
}