Skip to content

Commit fc4b78f

Browse files
committed
Print last line of django db connection error while waiting for db to start
Fixes #562
1 parent 9e063a6 commit fc4b78f

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

docker/docker-entrypoint.sh

+13-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,19 @@ source /opt/netbox/venv/bin/activate
1515
DB_WAIT_TIMEOUT=${DB_WAIT_TIMEOUT-3}
1616
MAX_DB_WAIT_TIME=${MAX_DB_WAIT_TIME-30}
1717
CUR_DB_WAIT_TIME=0
18-
while ! ./manage.py showmigrations >/dev/null 2>&1 && [ "${CUR_DB_WAIT_TIME}" -lt "${MAX_DB_WAIT_TIME}" ]; do
18+
while [ "${CUR_DB_WAIT_TIME}" -lt "${MAX_DB_WAIT_TIME}" ]; do
19+
# Read and truncate connection error tracebacks to last line by default
20+
exec {psfd}< <(./manage.py showmigrations 2>&1)
21+
read -rd '' DB_ERR <&$psfd || :
22+
exec {psfd}<&-
23+
wait $! && break
24+
if [ -n "$DB_WAIT_DEBUG" ]; then
25+
echo "$DB_ERR"
26+
else
27+
readarray -tn 0 DB_ERR_LINES <<<"$DB_ERR"
28+
echo "${DB_ERR_LINES[@]: -1}"
29+
echo "[ Use DB_WAIT_DEBUG=1 in netbox.env to print full traceback for errors here ]"
30+
fi
1931
echo "⏳ Waiting on DB... (${CUR_DB_WAIT_TIME}s / ${MAX_DB_WAIT_TIME}s)"
2032
sleep "${DB_WAIT_TIMEOUT}"
2133
CUR_DB_WAIT_TIME=$((CUR_DB_WAIT_TIME + DB_WAIT_TIMEOUT))

0 commit comments

Comments
 (0)