From e592608b7c5e74e966f564ae46a87ce4cbc7030c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:00:52 +0000 Subject: [PATCH 1/4] Initial plan From 6c82a50088ac4c51efcc4d7926410f561cecfa3a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:02:01 +0000 Subject: [PATCH 2/4] feat: add timeout to pg_isready check in docker-entrypoint.sh Co-authored-by: 0ghost0-dev <70481054+0ghost0-dev@users.noreply.github.com> --- docker-entrypoint.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 858043a..bb762c8 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -62,10 +62,23 @@ else echo "PJSe.json already exists at $PJSe_FILE" fi -echo "Waiting for Postgres at ${POSTGRESQL_HOST:-postgres}:${POSTGRESQL_PORT:-5432}..." -until pg_isready -h "${POSTGRESQL_HOST:-postgres}" -p "${POSTGRESQL_PORT:-5432}" -U "${POSTGRESQL_USER:-postgres}" >/dev/null 2>&1; do - sleep 1 +# Wait for PostgreSQL with timeout +POSTGRES_MAX_RETRIES="${POSTGRES_MAX_RETRIES:-60}" +POSTGRES_RETRY_DELAY="${POSTGRES_RETRY_DELAY:-1}" +POSTGRES_RETRY_COUNT=0 + +echo "Waiting for Postgres at ${POSTGRESQL_HOST:-postgres}:${POSTGRESQL_PORT:-5432}... (max ${POSTGRES_MAX_RETRIES} attempts)" +while ! pg_isready -h "${POSTGRESQL_HOST:-postgres}" -p "${POSTGRESQL_PORT:-5432}" -U "${POSTGRESQL_USER:-postgres}" >/dev/null 2>&1; do + POSTGRES_RETRY_COUNT=$((POSTGRES_RETRY_COUNT + 1)) + + if [ "$POSTGRES_RETRY_COUNT" -ge "$POSTGRES_MAX_RETRIES" ]; then + echo "ERROR: PostgreSQL did not become available after ${POSTGRES_MAX_RETRIES} attempts (${POSTGRES_MAX_RETRIES}s)" + echo "Please check your PostgreSQL configuration and ensure the database is running" + exit 1 + fi + + sleep "$POSTGRES_RETRY_DELAY" done -echo "Postgres is available. Starting app..." +echo "Postgres is available after ${POSTGRES_RETRY_COUNT} attempts. Starting app..." exec "$@" \ No newline at end of file From 5ade73834fe5f5f37cb3ca301d84d76353bb5b80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:03:11 +0000 Subject: [PATCH 3/4] fix: improve timeout logic and messages in pg_isready check Co-authored-by: 0ghost0-dev <70481054+0ghost0-dev@users.noreply.github.com> --- docker-entrypoint.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index bb762c8..46771a8 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -67,18 +67,22 @@ POSTGRES_MAX_RETRIES="${POSTGRES_MAX_RETRIES:-60}" POSTGRES_RETRY_DELAY="${POSTGRES_RETRY_DELAY:-1}" POSTGRES_RETRY_COUNT=0 -echo "Waiting for Postgres at ${POSTGRESQL_HOST:-postgres}:${POSTGRESQL_PORT:-5432}... (max ${POSTGRES_MAX_RETRIES} attempts)" +POSTGRES_TIMEOUT=$((POSTGRES_MAX_RETRIES * POSTGRES_RETRY_DELAY)) +echo "Waiting for Postgres at ${POSTGRESQL_HOST:-postgres}:${POSTGRESQL_PORT:-5432}... (max ${POSTGRES_MAX_RETRIES} attempts, ${POSTGRES_TIMEOUT}s timeout)" while ! pg_isready -h "${POSTGRESQL_HOST:-postgres}" -p "${POSTGRESQL_PORT:-5432}" -U "${POSTGRESQL_USER:-postgres}" >/dev/null 2>&1; do - POSTGRES_RETRY_COUNT=$((POSTGRES_RETRY_COUNT + 1)) - if [ "$POSTGRES_RETRY_COUNT" -ge "$POSTGRES_MAX_RETRIES" ]; then - echo "ERROR: PostgreSQL did not become available after ${POSTGRES_MAX_RETRIES} attempts (${POSTGRES_MAX_RETRIES}s)" + echo "ERROR: PostgreSQL did not become available after ${POSTGRES_MAX_RETRIES} attempts (${POSTGRES_TIMEOUT}s timeout)" echo "Please check your PostgreSQL configuration and ensure the database is running" exit 1 fi + POSTGRES_RETRY_COUNT=$((POSTGRES_RETRY_COUNT + 1)) sleep "$POSTGRES_RETRY_DELAY" done -echo "Postgres is available after ${POSTGRES_RETRY_COUNT} attempts. Starting app..." +if [ "$POSTGRES_RETRY_COUNT" -eq 0 ]; then + echo "Postgres is available. Starting app..." +else + echo "Postgres is available after ${POSTGRES_RETRY_COUNT} attempts. Starting app..." +fi exec "$@" \ No newline at end of file From 96f93f0be934b7f20703c6eeb557f3d90011c822 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 12:04:54 +0000 Subject: [PATCH 4/4] fix: correct retry logic and improve grammar in messages Co-authored-by: 0ghost0-dev <70481054+0ghost0-dev@users.noreply.github.com> --- docker-entrypoint.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 46771a8..167eb46 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -70,18 +70,21 @@ POSTGRES_RETRY_COUNT=0 POSTGRES_TIMEOUT=$((POSTGRES_MAX_RETRIES * POSTGRES_RETRY_DELAY)) echo "Waiting for Postgres at ${POSTGRESQL_HOST:-postgres}:${POSTGRESQL_PORT:-5432}... (max ${POSTGRES_MAX_RETRIES} attempts, ${POSTGRES_TIMEOUT}s timeout)" while ! pg_isready -h "${POSTGRESQL_HOST:-postgres}" -p "${POSTGRESQL_PORT:-5432}" -U "${POSTGRESQL_USER:-postgres}" >/dev/null 2>&1; do - if [ "$POSTGRES_RETRY_COUNT" -ge "$POSTGRES_MAX_RETRIES" ]; then + POSTGRES_RETRY_COUNT=$((POSTGRES_RETRY_COUNT + 1)) + + if [ "$POSTGRES_RETRY_COUNT" -gt "$POSTGRES_MAX_RETRIES" ]; then echo "ERROR: PostgreSQL did not become available after ${POSTGRES_MAX_RETRIES} attempts (${POSTGRES_TIMEOUT}s timeout)" echo "Please check your PostgreSQL configuration and ensure the database is running" exit 1 fi - - POSTGRES_RETRY_COUNT=$((POSTGRES_RETRY_COUNT + 1)) + sleep "$POSTGRES_RETRY_DELAY" done if [ "$POSTGRES_RETRY_COUNT" -eq 0 ]; then echo "Postgres is available. Starting app..." +elif [ "$POSTGRES_RETRY_COUNT" -eq 1 ]; then + echo "Postgres is available after 1 attempt. Starting app..." else echo "Postgres is available after ${POSTGRES_RETRY_COUNT} attempts. Starting app..." fi