Skip to content

Docker Compose 指南

我们的 Docker Compose 在很大程度上与官方版本保持一致。然而,也存在部分差异之处。为了确保您的 docker-compose 文件能够与共绩算力服务相适配,请依照以下指南进行操作。

指定镜像源

如果您已经上传了镜像到共绩算力镜像源并需要使用它作为服务,请在 image 字段中以 harbor.suanleme.cn 开头,后面跟上仓库名(改为自己的)和镜像名,例如:

yaml
image: harbor.suanleme.cn/<your-account>/my-image:my-tag

注意:

  • <your-account> 替换为您的仓库账号(可在"镜像仓库 > 访问凭证"中查看)
  • my-image 是您的镜像名称
  • my-tag 是镜像标签(如 "v1")

网络模式设置:服务的 network_mode 需要设置为 bridge

yaml
network_mode: bridge

端口转发设置

对于需进行转发的端口及其域名前缀,应当在服务的 labels 中的 suanleme_n.http.port 以及 suanleme_n.http.prefix 字段予以指定。

其中,n 表示此转发端口的序号,n 从 0 起始。倘若存在多个端口需转发,则依序使用 suanleme_n 标签,例如 suanleme_0、suanleme_1、suanleme_2。

每一个 http.port 标签均需对应一个 http.prefix 标签,其作用在于告知服务器将前往 http.port 标签中端口的请求解析至 http.prefix-用户前缀 - 任务前缀。

📢

prefix 必须为 4 - 16 位,且仅能是以小写字母开头的小写字母与数字的组合格式

以下为一个示例:

yaml
labels:
      - suanleme_0.http.port=8080
      - suanleme_0.http.prefix=gj8080
      - suanleme_1.http.port=8081
      - suanleme_1.http.prefix=gj8081
      - suanleme_2.http.port=8082
      - suanleme_2.http.prefix=gj8082
      - suanleme_3.http.port=8083
      - suanleme_3.http.prefix=gj8083

不支持 volumes

鉴于我们提供的为弹性服务,弹性服务由多台机器共同提供统一算力服务。弹性服务的首要特性表现为无状态。基于此,我们不支持 volumes 功能。

在弹性场景下,最佳实践是把模型等资源整合进 Docker 镜像中。

可参考 Comfy UI 示例:https://gongjiyun.com/docs/tutorials/comfyui.html

其它配置

docker-compose 的其余部分可以根据应用的具体需求进行自定义配置。

以下是一个完整的 docker-compose 示例文件,展示了如何配置一个符合共绩算力要求的服务:

yaml
services:
  # CPU 版 FFmpeg API 服务定义
  ffmpeg-api-cpu:
    image: harbor.suanleme.cn/library/ffmpeg-api:cpu  # 使用的 Docker 镜像,当前镜像是在公共仓库中
    restart: always
    network_mode: bridge # 使用桥接网络模式
    # 自定义标签用于服务标识
    labels:
      - suanleme_0.http.port=8000  # CPU API 的 HTTP 端口
      - suanleme_0.http.prefix=cpuapi  # CPU API 的 URL 前缀

  # GPU 版 FFmpeg API 服务定义
  ffmpeg-api-gpu:
    image: harbor.suanleme.cn/library/ffmpeg-api:gpu # 使用的 Docker 镜像,当前镜像是在公共仓库中
    restart: always
    network_mode: bridge # 使用桥接网络模式
    # 自定义标签用于服务标识
    labels:
      - suanleme_0.http.port=8000  # GPU API 的 HTTP 端口
      - suanleme_0.http.prefix=gpuapi  # GPU API 的 URL 前缀
    # 部署配置,分配 GPU 资源
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia  # 使用 NVIDIA GPU 驱动
              count: 1  # 预留的 GPU 数量
              capabilities: [ gpu ]  # 指定 GPU 功能
📢

该文件仅用于演示目的,请根据具体需求编写自己的 docker-compose 文件

推送镜像

请查阅:https://gongjiyun.com/docs/docker/harbor.html