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}..." echo "⏳ Menunggu MySQL di ${DB_HOST}:${DB_PORT}..."
until mysqladmin ping \ until php -r "
-h "${DB_HOST}" \ try {
-P "${DB_PORT}" \ new PDO(
-u "${DB_USERNAME}" \ 'mysql:host=${DB_HOST};port=${DB_PORT};dbname=${DB_DATABASE}',
--password="${DB_PASSWORD}" \ '${DB_USERNAME}',
--silent 2>/dev/null; do '${DB_PASSWORD}'
);
exit(0);
} catch (Exception \$e) {
exit(1);
}
" 2>/dev/null; do
printf "." printf "."
sleep 2 sleep 2
done done