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}..."
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user