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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user