Enhance Docker setup and scripts by adding default environment variables for BGP configuration, improving the update process with safe and quick update options, and implementing testing capabilities in the prefix loader script. Update start.sh to include permission checks and network connectivity validation during ExaBGP startup.
Build and Push Docker Image / build (push) Successful in 3m18s

This commit is contained in:
2025-07-11 17:20:30 +07:00
parent d795a9ec7d
commit 699cb4b5ba
5 changed files with 184 additions and 3 deletions
+40 -2
View File
@@ -40,8 +40,18 @@ echo "Prefixes file content:"
cat /app/data/prefixes.txt
echo "---"
# Проверка прав доступа к файлам
echo "Checking file permissions:"
ls -la /app/data/
ls -la /app/scripts/
echo "---"
# Генерация конфигурации из переменных окружения
echo "Generating ExaBGP configuration from environment variables..."
echo "Environment variables:"
env | grep BGP_ || echo "No BGP_ variables found"
echo "---"
python3 /app/scripts/generate_config.py
# Проверка конфигурации
@@ -51,13 +61,29 @@ cat /app/exabgp.conf
echo "---"
exabgp --validate /app/exabgp.conf
# Тестовый запуск скрипта загрузки префиксов
echo "Testing prefix loader script..."
python3 /app/scripts/load_prefixes.py --test 2>&1 || echo "Prefix loader test failed (this is normal)"
echo "---"
# Проверка сетевого подключения
echo "Checking network connectivity..."
NEIGHBOR_IP=${BGP_NEIGHBOR_IP:-192.168.1.1}
if ping -c 1 $NEIGHBOR_IP > /dev/null 2>&1; then
echo "Network connectivity to $NEIGHBOR_IP: OK"
else
echo "Warning: Cannot reach $NEIGHBOR_IP. BGP session may not establish."
fi
# Запуск ExaBGP в фоновом режиме с логированием
echo "Starting ExaBGP..."
LOG_LEVEL=${BGP_LOG_LEVEL:-INFO}
exabgp --log.level $LOG_LEVEL /app/exabgp.conf > /app/logs/exabgp.log 2>&1 &
# Запуск с подробным логированием в режиме демона
exabgp --log.level $LOG_LEVEL --daemon /app/exabgp.conf > /app/logs/exabgp.log 2>&1 &
EXABGP_PID=$!
# Сохранение PID
EXABGP_PID=$!
echo $EXABGP_PID > /app/logs/exabgp.pid
# Ожидание запуска
@@ -66,8 +92,15 @@ sleep 5
# Проверка статуса
if kill -0 $EXABGP_PID 2>/dev/null; then
echo "ExaBGP started successfully with PID: $EXABGP_PID"
echo "Recent logs:"
tail -10 /app/logs/exabgp.log
else
echo "Failed to start ExaBGP"
echo "Full logs:"
cat /app/logs/exabgp.log
echo "---"
echo "Process status:"
ps aux | grep exabgp || echo "No exabgp process found"
exit 1
fi
@@ -84,4 +117,9 @@ cleanup() {
trap cleanup SIGTERM SIGINT
# Ожидание завершения
echo "Waiting for ExaBGP to run..."
echo "Process status:"
ps aux | grep exabgp || echo "No exabgp process found"
echo "---"
wait $EXABGP_PID