- 统一标注引擎为 CVAT:客户端/配置/格式转换、iframe 标注页、docker-compose.cvat.yml 与 no_auth 补丁 - 移除 Label Studio 相关配置与构建脚本,清理 embedded.bak 备份与误提交的 node_modules - 新增「我的标注」:跨 Campaign 收件箱、逐张清单、CVAT frame 跳转 - 飞书任务分配:通讯录同步选人、按量分配、分配后 DM 通知(含 my-tasks 链接) - ADAS cuboid_7cls 数据湖接入:workflow 路径、register-batch、开标上传与标注同步 - 数据湖挂载 AS_DATA_LAKE_ROOT、datasets/adas 符号链接、reset_labeling 运维脚本 - 补充 docs/HANDOVER.md 项目交接文档 Co-authored-by: Cursor <cursoragent@cursor.com>
158 lines
4.3 KiB
YAML
158 lines
4.3 KiB
YAML
# HSAP — Huaxu Sentinel Active Safety Platform
|
||
# 用法:
|
||
# docker compose up -d # 仅平台
|
||
# docker compose -f docker-compose.yml -f docker-compose.cvat.yml up -d # 平台 + CVAT 标注引擎
|
||
|
||
name: hsap
|
||
|
||
x-platform-env: &platform-env
|
||
AS_DB_HOST: postgres
|
||
AS_DB_PORT: "5432"
|
||
AS_DB_USER: as_platform
|
||
AS_DB_PASSWORD: as_platform
|
||
AS_DB_NAME: as_platform
|
||
AS_REDIS_URL: redis://redis:6379/0
|
||
AS_JOB_EXECUTOR: worker
|
||
AS_DEV_AUTH: "true"
|
||
AS_FORCE_DEV_AUTH: "true"
|
||
AS_JWT_SECRET: dev-docker-secret
|
||
AS_FRONTEND_URL: http://127.0.0.1:8787
|
||
FEISHU_REDIRECT_URI: http://127.0.0.1:8787/api/v1/auth/feishu/callback
|
||
# 容器内 workspace 挂载点(宿主机路径由 compose volumes 的 AS_WORKSPACE_ROOT 决定)
|
||
AS_WORKSPACE_ROOT: /data/workspace
|
||
AS_DATA_LAKE_ROOT: /data/data
|
||
# CVAT 标注引擎(合并 docker-compose.cvat.yml 时生效;无需 CVAT 账号)
|
||
CVAT_HOST: ${CVAT_HOST:-http://hsap-cvat-server:8080}
|
||
CVAT_PUBLIC_URL: ${CVAT_PUBLIC_URL:-http://127.0.0.1:8080}
|
||
|
||
x-platform-volumes: &platform-volumes
|
||
- .:/data/hsap
|
||
- ${AS_WORKSPACE_ROOT:-./.workspace-stub}:/data/workspace:ro
|
||
- ${AS_DATA_LAKE_HOST:-../data}:/data/data
|
||
|
||
services:
|
||
postgres:
|
||
image: postgres:16-alpine
|
||
container_name: hsap-postgres
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_USER: as_platform
|
||
POSTGRES_PASSWORD: as_platform
|
||
POSTGRES_DB: as_platform
|
||
ports:
|
||
- "${AS_DB_PORT:-5432}:5432"
|
||
volumes:
|
||
- hsap_pgdata:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U as_platform -d as_platform"]
|
||
interval: 5s
|
||
timeout: 5s
|
||
retries: 8
|
||
networks:
|
||
default:
|
||
aliases:
|
||
- postgres
|
||
|
||
redis:
|
||
image: redis:7-alpine
|
||
container_name: hsap-redis
|
||
restart: unless-stopped
|
||
ports:
|
||
- "${AS_REDIS_PORT:-6379}:6379"
|
||
volumes:
|
||
- hsap_redis:/data
|
||
healthcheck:
|
||
test: ["CMD", "redis-cli", "ping"]
|
||
interval: 5s
|
||
timeout: 3s
|
||
retries: 8
|
||
networks:
|
||
default:
|
||
aliases:
|
||
- redis
|
||
|
||
platform:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
container_name: hsap-platform
|
||
restart: unless-stopped
|
||
env_file:
|
||
- manifests/feishu.env
|
||
ports:
|
||
- "${AS_PLATFORM_PORT:-8787}:8787"
|
||
environment:
|
||
<<: *platform-env
|
||
volumes: *platform-volumes
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
|
||
worker:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
container_name: hsap-worker
|
||
restart: unless-stopped
|
||
env_file:
|
||
- manifests/feishu.env
|
||
environment:
|
||
<<: *platform-env
|
||
volumes: *platform-volumes
|
||
command: ["python", "scripts/worker.py"]
|
||
depends_on:
|
||
platform:
|
||
condition: service_started
|
||
postgres:
|
||
condition: service_healthy
|
||
redis:
|
||
condition: service_healthy
|
||
|
||
# 可选:S3 兼容暂存(联调)— docker compose --profile minio up -d
|
||
minio:
|
||
image: minio/minio:latest
|
||
container_name: hsap-minio
|
||
profiles: ["minio"]
|
||
restart: unless-stopped
|
||
command: server /data --console-address ":9001"
|
||
environment:
|
||
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
|
||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin_change_me}
|
||
ports:
|
||
- "${MINIO_API_PORT:-9000}:9000"
|
||
- "${MINIO_CONSOLE_PORT:-9001}:9001"
|
||
volumes:
|
||
- hsap_minio_data:/data
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"]
|
||
interval: 15s
|
||
timeout: 5s
|
||
retries: 5
|
||
start_period: 15s
|
||
|
||
minio-init:
|
||
image: minio/mc:latest
|
||
container_name: hsap-minio-init
|
||
profiles: ["minio"]
|
||
depends_on:
|
||
minio:
|
||
condition: service_healthy
|
||
environment:
|
||
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
|
||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin_change_me}
|
||
MINIO_BUCKET: ${MINIO_BUCKET:-hsap-staging}
|
||
entrypoint: >
|
||
/bin/sh -c "
|
||
mc alias set local http://minio:9000 $$MINIO_ROOT_USER $$MINIO_ROOT_PASSWORD &&
|
||
mc mb -p local/$$MINIO_BUCKET || true &&
|
||
mc anonymous set download local/$$MINIO_BUCKET || true
|
||
"
|
||
restart: "no"
|
||
|
||
volumes:
|
||
hsap_pgdata:
|
||
hsap_redis:
|
||
hsap_minio_data:
|