buildbot/metabbotcfgmetabuildbot Docker镜像是Buildbot CI系统(buildbot.buildbot.net)的专用配置镜像,用于部署和运行Buildbot官方CI系统的worker节点。该镜像包含构建和管理worker节点所需的核心配置文件,需集成到Buildbot master节点的基础目录(basedir)中,实现CI流程的自动化执行。
master.cfg、workers.py等核心配置文件,需部署为master basedir的子目录,并通过符号链接(basedir/master.cfg -> metabbotcfg/master.cfg)与master节点集成。*.pass文件存储(而非硬编码),由MyWorker类自动读取,提升配置安全性。注意:本镜像为Buildbot官方CI系统的专用配置,不建议作为通用Buildbot配置示例。其配置逻辑仅针对buildbot.buildbot.net的特定需求设计,其他环境直接使用可能需要大量定制调整。
*.pass文件(存储worker密码),且路径可被容器访问。需在master basedir中创建metabbotcfg子目录,并按以下结构组织文件:
basedir/ ├── master.cfg -> metabbotcfg/master.cfg # 符号链接:关联master配置 └── metabbotcfg/ ├── master.cfg # 核心配置文件 ├── workers.py # worker节点定义 └── ... # 其他辅助配置文件
| 参数/文件 | 描述 | 示例路径 |
|---|---|---|
basedir | Buildbot master节点的基础目录,需包含metabbotcfg子目录 | /var/buildbot/master |
metabbotcfg | 镜像配置文件存放目录(子目录),包含master.cfg等核心文件 | /var/buildbot/master/metabbotcfg |
*.pass | 本地密码文件,存储worker节点密码(文件名通常与worker名称对应) | /var/buildbot/passfiles/worker1.pass |
| 环境变量 | 描述 | 默认值 |
|---|---|---|
MASTER_BASEDIR | Buildbot master节点的基础目录路径 | /basedir |
METABBOTCFG_PATH | metabbotcfg子目录在容器内的路径 | ${MASTER_BASEDIR}/metabbotcfg |
PASS_FILES_DIR | 本地*.pass文件的挂载目录 | /passfiles |
docker run部署bashdocker run -d \ --name metabuildbot-worker \ -v /var/buildbot/master:/basedir \ # 挂载master basedir -v /var/buildbot/passfiles:/passfiles \ # 挂载密码文件目录(只读) -e MASTER_BASEDIR=/basedir \ -e PASS_FILES_DIR=/passfiles \ buildbot/metabuildbot:latest
docker-compose部署创建docker-compose.yml:
yamlversion: '3.8' services: metabuildbot: image: buildbot/metabuildbot:latest container_name: metabuildbot-worker volumes: - /var/buildbot/master:/basedir:ro # 只读挂载master basedir - /var/buildbot/passfiles:/passfiles:ro # 只读挂载密码文件目录 environment: - MASTER_BASEDIR=/basedir - METABBOTCFG_PATH=/basedir/metabbotcfg - PASS_FILES_DIR=/passfiles restart: unless-stopped # 异常退出后自动重启
启动服务:
bashdocker-compose up -d
部署后,通过以下命令验证配置是否生效:
bash# 检查容器日志,确认worker启动状态 docker logs -f metabuildbot-worker # 验证符号链接是否正确 docker exec metabuildbot-worker ls -l /basedir/master.cfg
*.pass文件包含敏感信息,需设置权限限制(如chmod 600),并以只读方式(:ro)挂载到容器。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务