logo
0
1
WeChat Login

LibACG Cloud Native Build 配置

本目录包含 LibACG 项目的 Cloud Native Build (CNB) 配置,用于定义云原生开发环境和部署流程。

目录结构

.cnb/ ├── README.md # 本文件 ├── cnb.yaml # CNB 工作区主配置 ├── build.yaml # 构建流程配置 ├── deploy.yaml # 部署流程配置 ├── runtime.yaml # 运行时环境配置 ├── tasks.yaml # 任务定义 ├── devcontainer.json # 开发容器配置 ├── plugin-registry.yaml # 插件注册表 └── scripts/ # 辅助脚本 ├── setup-dev.sh # 开发环境初始化 └── start-services.sh # 服务启动脚本

快速开始

使用 Makefile

# 初始化开发环境 make setup # 启动开发服务器 make dev # 运行测试 make test # 构建 Docker 镜像 make build-docker # 查看所有可用命令 make help

使用 uv 命令

# 安装依赖 uv sync --all-packages # 启动 Server uv run acg-server start --reload # 启动 Worker LIBACG_MODE=worker uv run python -m libacg_worker # 运行测试 uv run pytest

使用 Docker Compose

# 启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down

配置说明

1. cnb.yaml - 工作区主配置

定义项目的核心配置:

  • 编程语言和运行时:Python 3.14
  • 包管理器:uv
  • 项目架构:Monorepo 工作区
  • 服务定义:Server 和 Worker
  • 插件系统:FFmpeg、LibJXL、UnRAR

2. build.yaml - 构建配置

定义 CI/CD 构建流程:

  • 代码质量检查(ruff、mypy)
  • 安全扫描(pip-audit)
  • 单元测试和集成测试
  • Docker 镜像构建
  • 代码覆盖率报告

3. deploy.yaml - 部署配置

定义多环境部署策略:

  • 开发环境(development)
  • 预发布环境(staging)
  • 生产环境(production)
  • 容器镜像安全扫描

4. runtime.yaml - 运行时配置

定义不同运行模式的配置:

  • development:开发模式
  • testing:测试模式
  • staging:预发布模式
  • production:生产模式
  • standalone:离线独立模式

5. tasks.yaml - 任务定义

定义可用的任务:

  • build:构建任务
  • test:测试任务
  • dev:开发任务
  • deploy:部署任务
  • maintenance:维护任务

6. devcontainer.json - 开发容器

VS Code 开发容器配置:

  • Python 3.14 环境
  • 常用 VS Code 扩展
  • 端口转发配置
  • 自动初始化脚本

7. plugin-registry.yaml - 插件注册表

定义可用的插件:

  • libacg-ffmpeg:视频处理
  • libacg-libjxl:图片转码
  • libacg-unrar:压缩包解压

环境变量

全局变量

变量名说明默认值
LIBACG_LOG_LEVEL日志级别INFO
PYTHONPATHPython 路径/app

Server 变量

变量名说明默认值
LIBACG_DATA_DIR数据目录/data
LIBACG_SERVER_HOST监听地址0.0.0.0
LIBACG_SERVER_PORT监听端口8080

Worker 变量

变量名说明默认值
LIBACG_MODE运行模式worker
LIBACG_SERVER_URLServer 地址http://localhost:8080
LIBACG_WORKER_IDWorker IDworker-001
LIBACG_WORKER_TAGSWorker 标签generic
LIBACG_WORKER_PLUGINS加载的插件libacg_unrar

Standalone 变量

变量名说明默认值
LIBACG_MODE运行模式standalone
LIBACG_JOB_FILEJob 文件路径/data/job.yaml
LIBACG_INPUT_DIR输入目录/input
LIBACG_OUTPUT_DIR输出目录/output

架构说明

LibACG 采用四层架构设计:

┌─────────────────────────────────────────┐ │ Layer 4: Job (编排层) │ │ - YAML 定义任务流水线 │ │ - Stage 依赖关系 (DAG) │ ├─────────────────────────────────────────┤ │ Layer 3: Server (调度层) │ │ - FastAPI 服务 │ │ - 任务调度和分发 │ ├─────────────────────────────────────────┤ │ Layer 2: Worker (执行层) │ │ - 插件加载和执行 │ │ - 支持 Worker/Standalone 双模式 │ ├─────────────────────────────────────────┤ │ Layer 1: Plugin (功能层) │ │ - FFmpeg 视频处理 │ │ - LibJXL 图片转码 │ │ - UnRAR 压缩包解压 │ └─────────────────────────────────────────┘

文档链接

许可证

MIT License

About

Agentic Engineering 一把梭!

Language
Python94.3%
Makefile3%
Shell2.1%
Dockerfile0.6%