cm2network/steampipe 是基于 Docker 的 SteamPipe ContentBuilder 工具镜像,用于将游戏或应用构建上传至 Valve 的 Steam 平台。SteamPipe 是 Steam 的游戏/应用内容分发系统,提供高效内容交付、多分支测试等功能。该镜像专注于实现 ContentBuilder 功能,帮助开发者通过 CI/CD 流程将构建上传至 Steam 应用的 depots(内容仓库)和分支,无需完整安装 Steamworks SDK。
| 标签 | 说明 | Dockerfile 链接 |
|---|---|---|
contentbuilder、latest | 基于 Debian Bullseye 的 ContentBuilder 版本,包含核心上传功能 | https://github.com/CM2Walki/steampipe/blob/master/bullseye-contentbuilder/Dockerfile |
游戏或应用开发者,需要通过自动化流程(如 CI/CD)将构建上传至 Steam 平台。
确保满足以下条件:
1. 创建持久化卷
需创建以下卷保存登录会话、构建缓存和 SteamCMD 安装(可选):
bash# 登录会话存储(保存 Steam 登录状态,避免重复验证) docker volume create steamcmd_login_volume # 构建缓存存储(必须保留,避免每次构建从零开始) docker volume create steamcmd_output_volume # SteamCMD 安装目录(可选,避免重复下载安装) docker volume create steamcmd_volume
2. 激活 Steam 登录会话
执行以下命令初始化登录会话,首次运行需输入*** 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)
适用于仅需上传至单个 Depot 的场景。替换以下参数后执行:
bashdocker run -d --net=host \ -e STEAMUSER="[STEAMUSER]" \ # Steam 用户名 -e STEAMPASSWORD="[ACCOUNTPASSWORD]" \# Steam 密码 -e STEAMAPPID="[STEAMAPPID]" \ # 应用 ID(如 12345) -e STEAMDEPOTID="[STEAMDEPOTID]" \ # Depot ID(如 12346) -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"
方式二:复杂上传(自定义 VDF 文件)
适用于多 Depot 上传或需自定义构建逻辑的场景,通过 VDF 文件定义构建规则。替换以下参数后执行:
bashdocker run -d --net=host \ -e STEAMUSER="[STEAMUSER]" \ # Steam 用户名 -e STEAMPASSWORD="[ACCOUNTPASSWORD]" \# Steam 密码 -e VDFAPPBUILD="[VDFAPPBUILDFILE]" \ # 自定义 VDF 文件名(如 app_build_12345.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 的目录,默认包含所有文件) |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务