fix: guna PHP PDO untuk semak MySQL dalam entrypoint

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 <noreply@anthropic.com>
This commit is contained in:
Saufi
2026-05-18 17:24:38 +08:00
parent 69c91dfb4b
commit 55c077ee48

View File

@@ -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