didi-lot1-ai/ai_platform/modules/extractors/deploy/deploy.sh

41 lines
1.1 KiB
Bash

#!/usr/bin/env bash
# Deploy the extractors service. Fail-fast on missing config (no silent defaults).
set -euo pipefail
cd "$(dirname "$0")"
[[ -f .env ]] && source .env
check_required_var() {
if [[ -z "${!1:-}" ]]; then
echo "ERROR: $1 not set (see .env.example)" >&2
exit 1
fi
}
usage() {
cat <<EOF
Usage: $0 {up|down|logs|build|test}
Required env vars (set in .env):
EXTRACTORS_TAG Image tag (e.g. 0.1.0)
EXTRACTORS_PORT Host/container port (e.g. 54400 dev / 14400 prod)
EXTRACTORS_MAX_UPLOAD_MB Max upload size in MB (e.g. 100)
Optional:
EXTRACTORS_LLM_GATEWAY_URL LLM gateway base URL (sentiment/NER/OCR only)
EXTRACTORS_LLM_MODEL Model alias (default: qwen3.5)
EOF
}
check_required_var "EXTRACTORS_TAG"
check_required_var "EXTRACTORS_PORT"
check_required_var "EXTRACTORS_MAX_UPLOAD_MB"
case "${1:-}" in
up) docker compose up -d --build ;;
down) docker compose down ;;
logs) docker compose logs -f ;;
build) docker compose build ;;
test) docker build -f deploy/Dockerfile --target builder -t extractors-test .. ;;
*) usage; exit 1 ;;
esac