Docker Compose 指南
我们的 Docker Compose 在很大程度上与官方版本保持一致。然而,也存在部分差异之处。为了确保您的 docker-compose 文件能够与共绩算力服务相适配,请依照以下指南进行操作。
指定镜像源
如果您已经上传了镜像到共绩算力镜像源并需要使用它作为服务,请在 image
字段中以 harbor.suanleme.cn
开头,后面跟上仓库名(改为自己的)和镜像名,例如:
image: harbor.suanleme.cn/<your-account>/my-image:my-tag
注意:
- 将
<your-account>
替换为您的仓库账号(可在"镜像仓库 > 访问凭证"中查看) my-image
是您的镜像名称my-tag
是镜像标签(如 "v1")
网络模式设置:服务的 network_mode
需要设置为 bridge
。
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 位,且仅能是以小写字母开头的小写字母与数字的组合格式
以下为一个示例:
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 示例文件,展示了如何配置一个符合共绩算力要求的服务:
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 文件