XQ commited on
Commit
478bf35
·
1 Parent(s): 31a2688

Fix waiting Qdrant

Browse files
scripts/docker-entrypoint.sh CHANGED
@@ -1,27 +1,32 @@
1
  #!/bin/bash
2
  set -e
3
 
4
- # ---- Wait for Qdrant to be ready ------------------------------------------
5
- QDRANT_URL="${QDRANT_URL:-http://localhost:6333}"
6
  COLLECTION="${COLLECTION_NAME:-ku_documents}"
7
 
8
- echo "Waiting for Qdrant at ${QDRANT_URL} ..."
9
- until curl -sf "${QDRANT_URL}/healthz" > /dev/null 2>&1; do
10
- sleep 2
11
- done
12
- echo "Qdrant is ready."
 
 
13
 
14
- # ---- Check if collection already has data ----------------------------------
15
- POINT_COUNT=$(curl -sf "${QDRANT_URL}/collections/${COLLECTION}" 2>/dev/null \
16
- | python -c "import sys,json; print(json.load(sys.stdin).get('result',{}).get('points_count',0))" 2>/dev/null \
17
- || echo "0")
18
 
19
- if [ "${POINT_COUNT}" = "0" ] || [ -z "${POINT_COUNT}" ]; then
20
- echo "Collection '${COLLECTION}' is empty or missing — running ingestion ..."
21
- python -m scripts.ingest
22
- echo "Ingestion complete."
 
 
 
23
  else
24
- echo "Collection '${COLLECTION}' already has ${POINT_COUNT} points — skipping ingestion."
 
25
  fi
26
 
27
  # ---- Start the API server --------------------------------------------------
 
1
  #!/bin/bash
2
  set -e
3
 
4
+ QDRANT_URL="${QDRANT_URL:-}"
 
5
  COLLECTION="${COLLECTION_NAME:-ku_documents}"
6
 
7
+ if [ -n "${QDRANT_URL}" ]; then
8
+ # ---- Remote Qdrant: wait for service ------------------------------------
9
+ echo "Waiting for Qdrant at ${QDRANT_URL} ..."
10
+ until curl -sf "${QDRANT_URL}/healthz" > /dev/null 2>&1; do
11
+ sleep 2
12
+ done
13
+ echo "Qdrant is ready."
14
 
15
+ # ---- Check if collection already has data -------------------------------
16
+ POINT_COUNT=$(curl -sf "${QDRANT_URL}/collections/${COLLECTION}" 2>/dev/null \
17
+ | python -c "import sys,json; print(json.load(sys.stdin).get('result',{}).get('points_count',0))" 2>/dev/null \
18
+ || echo "0")
19
 
20
+ if [ "${POINT_COUNT}" = "0" ] || [ -z "${POINT_COUNT}" ]; then
21
+ echo "Collection '${COLLECTION}' is empty or missing — running ingestion ..."
22
+ python -m scripts.ingest
23
+ echo "Ingestion complete."
24
+ else
25
+ echo "Collection '${COLLECTION}' already has ${POINT_COUNT} points — skipping ingestion."
26
+ fi
27
  else
28
+ # ---- Local Qdrant: file-based storage -----------------------------------
29
+ echo "Using local Qdrant storage at ${QDRANT_PATH:-./qdrant_data}"
30
  fi
31
 
32
  # ---- Start the API server --------------------------------------------------
supervisord.spaces.conf CHANGED
@@ -4,7 +4,7 @@ logfile=/dev/null
4
  logfile_maxbytes=0
5
 
6
  [program:fastapi]
7
- command=uvicorn src.api.main:app --host 0.0.0.0 --port 8000
8
  directory=/app
9
  autostart=true
10
  autorestart=true
 
4
  logfile_maxbytes=0
5
 
6
  [program:fastapi]
7
+ command=/app/scripts/docker-entrypoint.sh
8
  directory=/app
9
  autostart=true
10
  autorestart=true