@@ -24,34 +24,35 @@ if [[ ${DB_SCHEME} = "sqlite3" ]]; then
2424 lsiown -R abc:abc \
2525 /config
2626elif [[ ${DB_SCHEME} = "postgresql" ]]; then
27- DB_HOST=$(awk -F"@|:" '{print $4}' <<<"${DATABASE_URL}")
28- DB_PORT=$(awk -F"@|/" '{print $6}' <<<"${DATABASE_URL}")
27+ DB_HOST=$(awk -F '@|:|/' '{print $6}' <<<"${DATABASE_URL}")
28+ DB_PORT=$(awk -F '@|:|/' '{print $7}' <<<"${DATABASE_URL}")
29+ DB_USER=$(awk -F '@|:|/' '{print $4}' <<<"${DATABASE_URL}")
2930 if [[ ! ${DB_PORT} =~ [0-9]+ ]]; then DB_PORT=5432; fi
3031 echo "Waiting for DB to be available"
3132 END=$((SECONDS + 30))
3233 while [[ ${SECONDS} -lt ${END} ]] && [[ -n "${DB_HOST+x}" ]]; do
33- if pg_isready -h "${DB_HOST}" -p "${DB_PORT}" -q; then
34- if [[ ! -f /dbwait.lock ]]; then
34+ if pg_isready -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" - q; then
35+ if [[ ! -f /run/ dbwait.lock ]]; then
3536 sleep 5
3637 fi
37- touch /dbwait.lock
38+ touch /run/ dbwait.lock
3839 break
3940 else
4041 sleep 1
4142 fi
4243 done
4344elif [[ ${DB_SCHEME} = "mysql2" ]]; then
44- DB_HOST=$(awk -F" @|:" '{print $4 }' <<<"${DATABASE_URL}")
45- DB_PORT=$(awk -F"@|/" '{print $6 }' <<<"${DATABASE_URL}")
45+ DB_HOST=$(awk -F ' @|:|/' '{print $6 }' <<<"${DATABASE_URL}")
46+ DB_PORT=$(awk -F '@|:|/' '{print $7 }' <<<"${DATABASE_URL}")
4647 if [[ ! ${DB_PORT} =~ [0-9]+ ]]; then DB_PORT=3306; fi
4748 echo "Waiting for DB to be available"
4849 END=$((SECONDS + 30))
4950 while [[ ${SECONDS} -lt ${END} ]] && [[ -n "${DB_HOST+x}" ]]; do
5051 if [[ $(/usr/bin/nc -w1 "${DB_HOST}" "${DB_PORT}" | tr -d '\0') ]]; then
51- if [[ ! -f /dbwait.lock ]]; then
52+ if [[ ! -f /run/ dbwait.lock ]]; then
5253 sleep 5
5354 fi
54- touch /dbwait.lock
55+ touch /run/ dbwait.lock
5556 break
5657 else
5758 sleep 1
0 commit comments