mirror of
https://github.com/MikroWizard/docker-compose-deployment.git
synced 2025-06-21 02:05:41 +02:00
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import psycopg2
|
|
import time
|
|
import os
|
|
import json
|
|
|
|
# Step 1: Read connection details from server.json
|
|
|
|
def wait_for_postgres():
|
|
try:
|
|
with open('/conf/server-conf.json') as f:
|
|
config = json.load(f)
|
|
db_name = config['PYSRV_DATABASE_NAME']
|
|
db_user = config['PYSRV_DATABASE_USER']
|
|
db_password = config['PYSRV_DATABASE_PASSWORD']
|
|
db_host = config['PYSRV_DATABASE_HOST_POSTGRESQL']
|
|
db_port = config['PYSRV_DATABASE_PORT']
|
|
|
|
except Exception as e:
|
|
print(f"An error occurred: {e}")
|
|
exit(1)
|
|
print(f"Waiting for PostgreSQL database {db_name} to become available...")
|
|
while True:
|
|
try:
|
|
conn = psycopg2.connect(
|
|
dbname=db_name,
|
|
user=db_user,
|
|
password=db_password,
|
|
host=db_host,
|
|
port=db_port
|
|
)
|
|
conn.close()
|
|
print("PostgreSQL is ready!")
|
|
break
|
|
except psycopg2.OperationalError as e:
|
|
print(f"Database not ready yet. Retrying in 5 seconds...\nError: {e}")
|
|
time.sleep(5)
|
|
|
|
wait_for_postgres()
|