fix: 修复部署问题

This commit is contained in:
Daniel
2026-04-07 17:01:13 +08:00
parent d22d6bb73b
commit 4879d2e8c5
15 changed files with 280 additions and 11 deletions

View File

@@ -0,0 +1,24 @@
EDGE_DISPATCH_HOST=0.0.0.0
EDGE_DISPATCH_PORT=8060
EDGE_MAX_DISPATCH_RECORDS=2000
PYTHON_IMAGE=docker.m.daocloud.io/library/python:3.10-slim
APT_MIRROR=mirrors.aliyun.com
PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/
PIP_TRUSTED_HOST=mirrors.aliyun.com
AUTO_PULL_LATEST=true
GIT_REPO_URL=
GIT_BRANCH=master
GIT_CLONE_DEPTH=1
GIT_PROJECT_SUBDIR=video_worker
OSS_ENABLED=true
OSS_ENDPOINT=https://oss-cn-shanghai.aliyuncs.com
OSS_BUCKET=your-bucket
OSS_ACCESS_KEY_ID=your-ak
OSS_ACCESS_KEY_SECRET=your-sk
OSS_PUBLIC_BASE_URL=https://your-cdn-domain
OSS_PREFIX=video-worker
LOG_LEVEL=INFO

View File

@@ -0,0 +1,27 @@
# Center Dispatch Project
中央调度服务独立项目目录,仅负责:
- 设备接入(`WS /ws/edge/{device_id}`
- 上游 HTTP 下发任务(`POST /dispatch/generate`
- 上游 HTTP 下发运维指令(`POST /devices/{device_id}/command`
- 指令/任务状态查询(`GET /dispatch/{id}``GET /commands/{id}`
## Quick Start
```bash
cd center_dispatch
bash scripts/start.sh
```
停止:
```bash
bash scripts/stop.sh
```
## Notes
- 首次运行会生成 `.env`,请至少配置:
- `GIT_REPO_URL`(开启 `AUTO_PULL_LATEST=true` 时必填)
- OSS 相关配置(`OSS_ENABLED=true` 时必填)

View File

@@ -0,0 +1,22 @@
services:
edge-dispatch:
build:
context: ..
dockerfile: docker/edge-dispatch/Dockerfile
args:
PYTHON_IMAGE: ${PYTHON_IMAGE:-docker.m.daocloud.io/library/python:3.10-slim}
APT_MIRROR: ${APT_MIRROR:-mirrors.aliyun.com}
PIP_INDEX_URL: ${PIP_INDEX_URL:-https://mirrors.aliyun.com/pypi/simple/}
PIP_TRUSTED_HOST: ${PIP_TRUSTED_HOST:-mirrors.aliyun.com}
AUTO_PULL_LATEST: ${AUTO_PULL_LATEST:-true}
GIT_REPO_URL: ${GIT_REPO_URL:-}
GIT_BRANCH: ${GIT_BRANCH:-master}
GIT_CLONE_DEPTH: ${GIT_CLONE_DEPTH:-1}
GIT_PROJECT_SUBDIR: ${GIT_PROJECT_SUBDIR:-video_worker}
container_name: video-worker-center-dispatch
env_file:
- .env
command: ["python", "-m", "uvicorn", "app.edge_dispatch_service:app", "--host", "0.0.0.0", "--port", "${EDGE_DISPATCH_PORT:-8060}"]
ports:
- "${EDGE_DISPATCH_PORT:-8060}:${EDGE_DISPATCH_PORT:-8060}"
restart: unless-stopped

View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
PROJECT_DIR="${ROOT_DIR}/center_dispatch"
cd "$PROJECT_DIR"
if [ ! -f .env ]; then
cp .env.example .env
echo "[INFO] .env created from .env.example, please set GIT_REPO_URL/OSS config."
fi
if ! command -v docker >/dev/null 2>&1; then
echo "[ERROR] docker not found"
exit 1
fi
if ! docker compose version >/dev/null 2>&1; then
echo "[ERROR] docker compose not available"
exit 1
fi
PORT=$(grep '^EDGE_DISPATCH_PORT=' .env | tail -n1 | cut -d'=' -f2- || true)
PORT="${PORT:-8060}"
docker compose up -d --build
echo "[OK] center dispatch started"
echo "[INFO] health: curl http://127.0.0.1:${PORT}/health"

View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
PROJECT_DIR="${ROOT_DIR}/center_dispatch"
cd "$PROJECT_DIR"
docker compose down
echo "[OK] center dispatch stopped"