fix: исправлены ошибки в Makefile

- Исправлена загрузка переменных окружения из .env файла
- Добавлена автоматическая загрузка .env файла в Makefile
- Исправлена проверка здоровья Zookeeper с добавлением timeout
- Команда kafka-create-topic теперь корректно читает переменные из .env
- Автор: Сергей Антропов, сайт: https://devops.org.ru
This commit is contained in:
Sergey Antropoff 2025-09-10 20:18:50 +03:00
parent a513408c64
commit cf7d8a5aad

View File

@ -5,6 +5,12 @@ SHELL := /bin/bash
PROJECT_NAME := sensus-infra PROJECT_NAME := sensus-infra
COMPOSE_FILE := docker-compose.yml COMPOSE_FILE := docker-compose.yml
# Загрузка переменных из .env файла
ifneq (,$(wildcard ./.env))
include .env
export
endif
.PHONY: help setup up down restart status logs clean ps .PHONY: help setup up down restart status logs clean ps
.PHONY: kafka-topics kafka-create-topic kafka-ui postgres-cli clickhouse-cli .PHONY: kafka-topics kafka-create-topic kafka-ui postgres-cli clickhouse-cli
.PHONY: health-check backup restore ssl-generate ssl-clean ssl-info .PHONY: health-check backup restore ssl-generate ssl-clean ssl-info
@ -163,7 +169,7 @@ logs: ## Показать логи всех сервисов
health-check: ## Проверить здоровье сервисов health-check: ## Проверить здоровье сервисов
@echo "🏥 Проверка здоровья сервисов..." @echo "🏥 Проверка здоровья сервисов..."
@echo "Zookeeper:" @echo "Zookeeper:"
@docker exec sensus-zookeeper bash -c "echo 'ruok' | nc localhost 2181" || echo "❌ Zookeeper недоступен" @docker exec sensus-zookeeper bash -c "echo 'ruok' | timeout 5 nc -w 1 localhost 2181" && echo "✅ Zookeeper доступен" || echo "❌ Zookeeper недоступен"
@echo "Kafka:" @echo "Kafka:"
@docker exec sensus-kafka kafka-broker-api-versions --bootstrap-server localhost:9092 >/dev/null 2>&1 && echo "✅ Kafka доступен" || echo "❌ Kafka недоступен" @docker exec sensus-kafka kafka-broker-api-versions --bootstrap-server localhost:9092 >/dev/null 2>&1 && echo "✅ Kafka доступен" || echo "❌ Kafka недоступен"
@echo "PostgreSQL:" @echo "PostgreSQL:"
@ -189,24 +195,24 @@ kafka-topics: ## Показать список топиков Kafka
kafka-create-topic: ## Создать топик Kafka с настройкой ретеншна kafka-create-topic: ## Создать топик Kafka с настройкой ретеншна
@echo "📝 Создание топика Kafka..." @echo "📝 Создание топика Kafka..."
@if [ -z "$$KAFKA_TOPIC" ]; then \ @if [ -z "$(KAFKA_TOPIC)" ]; then \
echo "❌ Переменная KAFKA_TOPIC не задана в .env файле"; \ echo "❌ Переменная KAFKA_TOPIC не задана в .env файле"; \
exit 1; \ exit 1; \
fi fi
@if [ -z "$$KAFKA_TOPIC_RETENTION_HOURS" ]; then \ @if [ -z "$(KAFKA_TOPIC_RETENTION_HOURS)" ]; then \
echo "❌ Переменная KAFKA_TOPIC_RETENTION_HOURS не задана в .env файле"; \ echo "❌ Переменная KAFKA_TOPIC_RETENTION_HOURS не задана в .env файле"; \
exit 1; \ exit 1; \
fi fi
@echo "🔧 Создание топика: $$KAFKA_TOPIC с ретеншном: $$KAFKA_TOPIC_RETENTION_HOURS часов" @echo "🔧 Создание топика: $(KAFKA_TOPIC) с ретеншном: $(KAFKA_TOPIC_RETENTION_HOURS) часов"
@docker exec sensus-kafka kafka-topics \ @docker exec sensus-kafka kafka-topics \
--bootstrap-server localhost:9092 \ --bootstrap-server localhost:9092 \
--create \ --create \
--topic $$KAFKA_TOPIC \ --topic $(KAFKA_TOPIC) \
--partitions $$KAFKA_NUM_PARTITIONS \ --partitions $(KAFKA_NUM_PARTITIONS) \
--replication-factor $$KAFKA_DEFAULT_REPLICATION_FACTOR \ --replication-factor $(KAFKA_DEFAULT_REPLICATION_FACTOR) \
--config retention.ms=$$(($$KAFKA_TOPIC_RETENTION_HOURS * 3600000)) \ --config retention.ms=$$(($(KAFKA_TOPIC_RETENTION_HOURS) * 3600000)) \
--if-not-exists || echo "⚠️ Топик уже существует или произошла ошибка" --if-not-exists || echo "⚠️ Топик уже существует или произошла ошибка"
@echo "✅ Топик $$KAFKA_TOPIC создан с ретеншном $$KAFKA_TOPIC_RETENTION_HOURS часов" @echo "✅ Топик $(KAFKA_TOPIC) создан с ретеншном $(KAFKA_TOPIC_RETENTION_HOURS) часов"
kafka-ui: ## Открыть Kafka UI в браузере kafka-ui: ## Открыть Kafka UI в браузере
@echo "🌐 Kafka UI доступен по адресу: http://localhost:8080" @echo "🌐 Kafka UI доступен по адресу: http://localhost:8080"