From 55c077ee48cdab8f5517b5d3c87621c48d5a9cc2 Mon Sep 17 00:00:00 2001 From: Saufi Date: Mon, 18 May 2026 17:24:38 +0800 Subject: [PATCH] fix: guna PHP PDO untuk semak MySQL dalam entrypoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mysqladmin resolve host.docker.internal ke IPv6 dahulu — MySQL Windows tidak dengar pada IPv6, menyebabkan loop tak berakhir dan 502 pada Nginx. PHP PDO guna IPv4 terus dan berjaya sambung. Co-Authored-By: Claude Sonnet 4.6 --- docker/entrypoint.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index b3369bc..f740925 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -26,12 +26,18 @@ DB_PASSWORD="${DB_PASSWORD:-secret}" echo "⏳ Menunggu MySQL di ${DB_HOST}:${DB_PORT}..." -until mysqladmin ping \ - -h "${DB_HOST}" \ - -P "${DB_PORT}" \ - -u "${DB_USERNAME}" \ - --password="${DB_PASSWORD}" \ - --silent 2>/dev/null; do +until php -r " + try { + new PDO( + 'mysql:host=${DB_HOST};port=${DB_PORT};dbname=${DB_DATABASE}', + '${DB_USERNAME}', + '${DB_PASSWORD}' + ); + exit(0); + } catch (Exception \$e) { + exit(1); + } +" 2>/dev/null; do printf "." sleep 2 done