cm2network/steampipecm2network/steampipe 是基于 Docker 的 SteamPipe ContentBuilder 工具镜像,用于将游戏或应用构建上传至 Valve 的 Steam 平台。SteamPipe 是 Steam 的游戏/应用内容分发系统,提供高效内容交付、多分支测试等功能。该镜像专注于实现 ContentBuilder 功能,帮助开发者通过 CI/CD 流程将构建上传至 Steam 应用的 depots(内容仓库)和分支,无需完整安装 Steamworks SDK。
| 标签 | 说明 | Dockerfile 链接 |
|---|---|---|
contentbuilder、latest | 基于 Debian Bullseye 的 ContentBuilder 版本,包含核心上传功能 | bullseye-contentbuilder/Dockerfile |
游戏或应用开发者,需要通过自动化流程(如 CI/CD)将构建上传至 Steam 平台。
确保满足以下条件:
需创建以下卷保存登录会话、构建缓存和 SteamCMD 安装(可选):
bash# 登录会话存储(保存 Steam 登录状态,避免重复验证) docker volume create steamcmd_login_volume # 构建缓存存储(必须保留,避免每次构建从零开始) docker volume create steamcmd_output_volume # SteamCMD 安装目录(可选,避免重复下载安装) docker volume create steamcmd_volume
执行以下命令初始化登录会话,首次运行需输入*** Steam Guard 验证码(会话将永久保存至 steamcmd_login_volume):
bashdocker run -it --rm \ -v "steamcmd_login_volume:/home/steam/Steam:z" \ -v "steamcmd_volume:/home/steam/steamcmd:z" \ cm2network/steampipe:contentbuilder \ bash /home/steam/steamcmd/steamcmd.sh +login [STEAMUSER] [ACCOUNTPASSWORD] +quit
参数说明:
[STEAMUSER]:Steamworks 账号用户名[ACCOUNTPASSWORD]:账号密码适用于仅需上传至单个 Depot 的场景。替换以下参数后执行:
bashdocker run -d --net=host \ -e STEAMUSER="[STEAMUSER]" \ # Steam 用户名 -e STEAMPASSWORD="[ACCOUNTPASSWORD]" \# Steam 密码 -e STEAMAPPID="[STEAMAPPID]" \ # 应用 ID(如 ***) -e STEAMDEPOTID="[STEAMDEPOTID]" \ # Depot ID(如 ***) -e STEAMAPPBUILDESC="Automated CD Upload" \ # 构建描述(显示在 Steam 后台) -v "[UPLOADDIR]:/home/steam/steamsdk/sdk/tools/ContentBuilder/content" \ # 本地构建文件路径(如 ./build) -v "steamcmd_login_volume:/home/steam/Steam:z" \ -v "steamcmd_volume:/home/steam/steamcmd:z" \ -v "steamcmd_output_volume:/home/steam/steamsdk/sdk/tools/ContentBuilder/output" \ --rm "cm2network/steampipe:contentbuilder"
适用于多 Depot 上传或需自定义构建逻辑的场景,通过 VDF 文件定义构建规则。替换以下参数后执行:
bashdocker run -d --net=host \ -e STEAMUSER="[STEAMUSER]" \ # Steam 用户名 -e STEAMPASSWORD="[ACCOUNTPASSWORD]" \# Steam 密码 -e VDFAPPBUILD="[VDFAPPBUILDFILE]" \ # 自定义 VDF 文件名(如 app_build_***.vdf) -e STEAMAPPBUILDESC="Automated CD Upload" \ # 构建描述 -v "[UPLOADDIR]:/home/steam/steamsdk/sdk/tools/ContentBuilder/content" \ # 本地构建文件路径 -v "[VDFFILESDIR]:/home/steam/steamsdk/sdk/tools/ContentBuilder/scripts" \ # 本地 VDF 文件目录(存放自定义 VDF) -v "steamcmd_login_volume:/home/steam/Steam:z" \ -v "steamcmd_volume:/home/steam/steamcmd:z" \ -v "steamcmd_output_volume:/home/steam/steamsdk/sdk/tools/ContentBuilder/output" \ --rm "cm2network/steampipe:contentbuilder"
可通过 -e 参数覆盖以下环境变量,自定义构建行为:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
VDFAPPBUILD | app_build_default.vdf | 启动时执行的 VDF 文件名(位于 scripts 目录下) |
STEAMAPPBRANCH | 空值 | 目标分支名称(设置后将立即发布构建至该分支,用于完整 CI/CD 流程) |
STEAMAPPBUILDESC | Docker CD upload | 构建描述(显示在 Steam 合作伙伴后台的构建记录中) |
STEAMAPPID | 22222 | 应用 ID(仅在 scripts 目录无自定义 VDF 时使用) |
STEAMDEPOTID | 22223 | Depot ID(仅在 scripts 目录无自定义 VDF 时使用) |
FILEEXCLUSIONS | 空值 | 排除文件列表(用 ; 分隔,仅在 scripts 目录无自定义 VDF 时使用) |
CONTENTBUILDERDIR | ${HOMEDIR}/steamsdk | ContentBuilder 根目录路径 |
BUILDERSCRIPTDIR | ${CONTENTBUILDERDIR}/sdk/tools/ContentBuilder/scripts | VDF 脚本存放目录 |
BUILDERCONTENTDIR | ${CONTENTBUILDERDIR}/sdk/tools/ContentBuilder/content | 构建文件存放目录(需挂载本地文件到此目录) |
BUILDEROUTPUTDIR | ${CONTENTBUILDERDIR}/sdk/tools/ContentBuilder/output | 构建输出和缓存目录(需持久化卷挂载) |
LOCALCONTENTPATH | * | 构建文件路径(相对于 BUILDERCONTENTDIR 的目录,默认包含所有文件) |
![Contributors Display]([***]
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务