跳到主要内容

Docker

优势

  • 简化管理:通过 Docker Compose 统一编排所有服务依赖
  • 快速部署:一键启动完整的 CSGHub 服务栈
  • 灵活扩展:支持横向扩展服务实例,按需调整资源配置和服务规模
  • 生产就绪:满足中小企业级应用部署要求

提示:建议使用 Docker Compose 进行安装。

适用场景

  • 快速搭建 CSGHub 演示环境
  • 快速验证 CSGHub 功能
  • 开发测试环境部署
  • 中小规模生产环境部署

功能说明

根据配置复杂度,提供两种启动模式:

  • 基本功能:除模型评测、推理、微调、应用空间、MCP 以外的所有功能功能(以上功能依赖 Kubernetes 集群)。
  • 完整功能:包含 ce/ee 全部功能。

注意:使用 IP 地址访问时,MCP 功能将受限(该功能需域名支持)。

系统要求

硬件配置

组件最低要求推荐配置
CPU4核8核
内存8GB16GB
架构支持amd64/arm64-

软件依赖

组件版本要求验证命令其他依赖
Docker Engine≥ 20.10.0docker --version
Docker Compose≥ 2.0.0docker compose version
Kubernetes1.28+ (可选)kubectl version1. 启用Starship需要Kubernetes支持RWX存储类
2. GPU支持需要预安装Device Plugin
3. 最好支持Dynamic Volume Provisioning

说明: 启用完整功能需要依赖 Kubernetes,否则模型评测、推理、微调,MCP, 应用空间等功能将不可用。

安装部署

CE版本

  • docker-compose.yml

    services:
    csghub:
    image: opencsg-registry.cn-beijing.cr.aliyuncs.com/opencsg_public/omnibus-csghub:v1.8.0-ce
    environment:
    CSGHUB_OMNIBUS_CONFIG: |
    csghub:
    external_url: "http://csghub.example.com" # 访问 CSGHub 实例域名,建议使用域名方式配置
    notification:
    enable: false
    runner:
    enable: true # 是否启用 Runner 服务,禁用则仅能使用基础功能
    deploy:
    knative:
    services:
    - type: "NodePort" # 如果 Kubernetes 集群支持 LoadBalancer,可以使用 LoadBalancer
    domain: "app.internal" # 自定义 Knative Serving 内部域名
    host: "192.168.18.10" # 暴露 kourier 服务的 EXTERNAL-IP
    port: 30123 # 自定义端口号,type=LoadBalancer, 请指定为 80
    ports:
    - '80:80' # Nginx
    - '2222:2222' # Git Over SSH
    - '5000:5000' # Container Registry
    - '8000:8000' # Casdoor
    - '9000:9000' # Minio
    volumes:
    - ./csghub/etc:/etc/csghub
    - ./csghub/logs:/var/log/csghub
    - ./csghub/data:/var/opt/csghub
    - ./csghub/.kube:/etc/csghub/.kube
    restart: always
    shm_size: '256m'
  • 启动服务

    docker compose up -d && docker compose ps

    注意: 如果 Kubernetes 集群未就绪请设置environment.CSGHUB_OMNIBUS_CONFIG.runner.enable=false(即安装使用基本功能)。

  • 停止服务

    docker compose down 

EE版本

  • docker-compose.yml

    services:
    csghub:
    image: opencsg-registry.cn-beijing.cr.aliyuncs.com/opencsg_public/omnibus-csghub:v1.8.0-ee
    environment:
    CSGHUB_OMNIBUS_CONFIG: |
    csghub:
    external_url: "http://csghub.example.com" # 访问 CSGHub 实例域名,建议使用域名方式配置
    runner:
    enable: true # 是否启用 Runner 服务,禁用则仅能使用基础功能
    deploy:
    knative:
    services:
    - type: "NodePort" # 如果 Kubernetes 集群支持 LoadBalancer,可以使用 NodePort
    domain: "app.internal" # 自定义 Knative Serving 内部域名
    host: "192.168.18.10" # 暴露 kourier 服务的 EXTERNAL-IP
    port: 30123 # 自定义端口号,type=LoadBalancer, 请指定为 80
    server:
    dataflow:
    address: "http://dataflow:8000" # Dataflow 地址
    starship:
    enable: true # 启用 Starship 编码助手
    ports:
    - '80:80' # Nginx
    - '2222:2222' # Git Over SSH
    - '5000:5000' # Container Registry
    - '8000:8000' # Casdoor
    - '8001:8001' # Starship Portal
    - '8002:8002' # Starship-API Admin Console
    - '9000:9000' # Minio
    - '9001:9001' # Minio Admin UI
    volumes:
    - ./csghub/etc:/etc/csghub
    - ./csghub/logs:/var/log/csghub
    - ./csghub/data:/var/opt/csghub
    - ./csghub/.kube:/etc/csghub/.kube
    restart: always
    shm_size: '256m'

    dataflow: # Dataflow 为 CSGHub 数据集处理模块,可按需启用
    image: opencsg-registry.cn-beijing.cr.aliyuncs.com/opencsg_public/dataflow:latest
    environment:
    CSGHUB_ENDPOINT: "http://csghub.example.com"
    DATABASE_HOSTNAME: "csghub"
    DATABASE_PORT: "5432"
    DATABASE_USERNAME: "dataflow"
    DATABASE_PASSWORD: "8f444970fcde559c"
    DATABASE_DB: "dataflow"
    DATA_DIR: "/data"
    MAX_WORKERS: 50
    RAY_ADDRESS: "auto"
    RAY_ENABLE: false
    RAY_LOG_DIR: "/var/log/dataflow"
    API_SERVER: "0.0.0.0"
    API_PORT: 8000
    AZURE_OPENAI_ENDPOINT: "$AZURE_OPENAI_ENDPOINT"
    AZURE_OPENAI_API_KEY: "$AZURE_OPENAI_ENDPOINT"
    OPENAI_API_VERSION: "$OPENAI_API_VERSION"
    AZURE_MODEL: "$AZURE_MODEL"
    ENABLE_OPENTELEMETRY: false
    volumes:
    - ./csghub/data/dataflow:/data
    - ./csghub/logs/dataflow:/var/log/dataflow
    restart: always
  • 启动服务

    docker compose up -d && docker compose ps
  • 停止服务

    docker compose down 

实例访问

  1. 实例 URL

    见 docker-compose.yml 中的 csghub.external_url

  2. 登录 csghub 容器

    docker compose ps && docker exec -it <container> bash 
  3. 查看默认管理员账户密码

    cat /etc/csghub/init_root_password

配置说明(从高到低)

  1. 环境变量配置
    • CSGHUB_OMNIBUS_CONFIG作用: 通过 Docker Compose 启动时注入动态配置参数 特点: 具有最高优先级,会覆盖其他配置源的相同参数 使用场景: 适合临时调整或容器化部署时的参数注入
  2. 主配置文件
    • /etc/csghub/csghub.yaml内容: 完整参数集合,支持所有可配置项 建议: 仅需按需修改关键参数,未配置项自动继承默认值 权限: 建议保留系统默认权限(通常需 root 权限修改)
  3. 默认配置基准
    • /opt/csghub/etc/csghub/default.yaml作用: 提供所有参数的基准默认值 特点:
      • 优先级最低,仅当其他配置未定义时生效
      • 不建议直接修改(升级时可能被覆盖)
      • 可作为配置模板参考

详细配置请参考:csghub.yaml.sample

服务管理

  • csghub-ctl

    CommandDescription
    --help查看帮助
    reconfigure刷新所有服务配置文件并按需重启服务
    start启动服务
    restart重启服务
    stop停止服务
    reload重载服务
    tail跟踪服务日志
    status查看服务状态
  • csghub-psql: 快速访问 csghub_server 数据库

关于 .kube/config

.kube/config文件作为访问 Kubernetes 集群的重要配置文件,在 CSGHub 运行时会依赖此文件。

关于外置服务

默认情况下以下组件会通过runner.deploy.autoConfigure=true来进行自动配置,此配置需要依赖启动服务时传入的runner.deploy.knative.services[]参数。如果存在一些原因无法完整自动配置,可以尝试通过以下方式手动安装配置:

问题反馈

如遇使用过程中遇到任何问题可以通过方式提交反馈: