fix(02-05): wait for MariaDB with hex-only process credentials

- Avoid urlsafe passwords that start with a dash and break mariadbadmin -p
- Probe readiness with a quoted SQL SELECT against the disposable container

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jakub Zych
2026-09-17 14:12:05 +02:00
parent a296e98d8e
commit 066c3d3ab7

View File

@@ -142,8 +142,8 @@ echo "==> fresh PHP self-replay on disposable MariaDB"
RUN_ID="$(date +%s)_$$"
DB_NAME="fonoteka_parity_${RUN_ID}"
DB_USER="parity_${RUN_ID}"
DB_PASS="$(python3 -c 'import secrets; print(secrets.token_urlsafe(24))')"
ADMIN_PASS="$(python3 -c 'import secrets; print(secrets.token_urlsafe(18))')"
DB_PASS="$(python3 -c 'import secrets; print(secrets.token_hex(16))')"
ADMIN_PASS="$(python3 -c 'import secrets; print(secrets.token_hex(12))')"
CONTAINER="fonoteka-parity-${RUN_ID}"
VARS_DIR="$(mktemp -d /tmp/summercms-parity-vars-XXXXXX)"
VARS_FILE="$VARS_DIR/vars.yaml"
@@ -182,10 +182,16 @@ echo "==> mariadb listening on 127.0.0.1:${DB_PORT}"
ready=0
for _ in $(seq 1 90); do
if docker exec "$CONTAINER" mariadbadmin ping -uroot -p"$DB_PASS" --silent >/dev/null 2>&1; then
if docker exec "$CONTAINER" mariadb -uroot -p"$DB_PASS" -e 'SELECT 1' --silent >/dev/null 2>&1; then
ready=1
break
fi
if docker logs "$CONTAINER" 2>&1 | grep -q 'ready for connections'; then
if docker exec "$CONTAINER" mariadb -uroot -p"$DB_PASS" -N -e 'SELECT 1' >/dev/null 2>&1; then
ready=1
break
fi
fi
sleep 1
done
if [[ "$ready" -ne 1 ]]; then