feat: initialize managed portal
This commit is contained in:
40
managed/people_flow_project/scripts/docker-entrypoint.sh
Executable file
40
managed/people_flow_project/scripts/docker-entrypoint.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
PROJECT_DIR="/opt/people-flow"
|
||||
CONFIG_TEMPLATE="${PROJECT_DIR}/config/config.example.yaml"
|
||||
CONFIG_PATH="${CONFIG_PATH:-${PROJECT_DIR}/config/local.yaml}"
|
||||
OUTPUT_DIR="${OUTPUT_DIR:-${PROJECT_DIR}/outputs}"
|
||||
RTSP_URL="${RTSP_URL:-}"
|
||||
API_HOST="${API_HOST:-0.0.0.0}"
|
||||
API_PORT="${API_PORT:-18082}"
|
||||
|
||||
mkdir -p "${OUTPUT_DIR}" "$(dirname "${CONFIG_PATH}")"
|
||||
|
||||
if [ ! -f "${CONFIG_PATH}" ]; then
|
||||
cp "${CONFIG_TEMPLATE}" "${CONFIG_PATH}"
|
||||
fi
|
||||
|
||||
python - "$CONFIG_PATH" "$RTSP_URL" "$OUTPUT_DIR" <<'PY'
|
||||
from pathlib import Path
|
||||
import sys
|
||||
import yaml
|
||||
|
||||
config_path = Path(sys.argv[1])
|
||||
rtsp_url = sys.argv[2]
|
||||
output_dir = sys.argv[3]
|
||||
|
||||
raw = yaml.safe_load(config_path.read_text(encoding="utf-8")) or {}
|
||||
runtime = raw.setdefault("runtime", {})
|
||||
if rtsp_url:
|
||||
runtime["rtsp_url"] = rtsp_url
|
||||
runtime["output_dir"] = output_dir
|
||||
yolo = raw.setdefault("yolo", {})
|
||||
yolo.setdefault("model_path", "weights/yolo11n.pt")
|
||||
config_path.write_text(
|
||||
yaml.safe_dump(raw, allow_unicode=True, sort_keys=False),
|
||||
encoding="utf-8",
|
||||
)
|
||||
PY
|
||||
|
||||
exec python main.py --config "${CONFIG_PATH}" manage-api --host "${API_HOST}" --port "${API_PORT}"
|
||||
Reference in New Issue
Block a user