48 lines
1.5 KiB
YAML
48 lines
1.5 KiB
YAML
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
|
||
|
||
|