apiVersion: v1 kind: ConfigMap metadata: name: cluster1-replication-scripts namespace: cluster1 data: entrypoint-replica.sh: | #!/bin/sh set +e # Не останавливаться при ошибках в фоновых процессах # Запускаем PostgreSQL в фоновом режиме echo "Запуск PostgreSQL..." docker-entrypoint.sh postgres & POSTGRES_PID=$! # Ждем запуска PostgreSQL echo "Ожидание запуска PostgreSQL..." sleep 15 # Проверяем, что PostgreSQL запущен RETRY_COUNT=0 MAX_RETRIES=30 until PGPASSWORD=postgres123 psql -h localhost -U postgres -c '\q' 2>/dev/null; do RETRY_COUNT=$((RETRY_COUNT + 1)) if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then echo "Ошибка: PostgreSQL не запустился за отведенное время" exit 1 fi echo "Ожидание PostgreSQL... ($RETRY_COUNT/$MAX_RETRIES)" sleep 2 done echo "PostgreSQL запущен!" # Настраиваем репликацию echo "Настройка репликации..." /replication-scripts/setup-replica.sh # Запускаем периодическую репликацию в фоне echo "Запуск службы периодической репликации..." /replication-scripts/replication-cron.sh & REPLICATION_PID=$! # Ждем завершения PostgreSQL (главный процесс) wait $POSTGRES_PID