
homegear/build本镜像为Homegear提供构建环境,用于基于GitHub最新版本源码构建Debian软件包,并支持通过SSH协议将构建结果自动上传至指定服务器。主要用途包括:
注意:运行ARM架构构建镜像时,需在宿主机预先安装qemu和qemu-user-static包,以支持架构模拟。
stable/testing/nightly),对应不同发布渠道的包管理路径。nightly版本包,验证最新代码稳定性。以下环境变量用于配置构建行为及上传参数,均为可选(未指定时可能仅执行构建,不上传):
| 环境变量名称 | 说明 | 默认值 | 格式要求 |
|---|---|---|---|
HOMEGEARBUILD_THREADS | 编译时的make线程数,影响构建速度。 | 1 | 正整数 |
HOMEGEARBUILD_SERVERNAME | 目标服务器URL(用于SSH上传)。 | - | 域名或IP地址 |
HOMEGEARBUILD_SERVERPORT | SSH服务器端口。 | - | 正整数(通常为22) |
HOMEGEARBUILD_SERVERUSER | SSH登录用户名。 | - | 字符串 |
HOMEGEARBUILD_REPOSITORYSERVERPATH | 服务器上存放testing/stable包的路径(供APT仓库使用)。 | - | 绝对路径 |
HOMEGEARBUILD_NIGHTLYSERVERPATH | 服务器上存放nightly包的路径(非APT仓库,仅文件存储)。 | - | 绝对路径 |
HOMEGEARBUILD_TYPE | 构建类型,决定包上传路径:stable、testing或nightly。 | - | 字符串(三选一) |
HOMEGEARBUILD_SERVERCERT | SSH登录私钥证书(base64编码),用于服务器认证。 | - | base64字符串,原证书换行符需替换为\n |
HOMEGEARBUILD_SERVER_KNOWNHOST_ENTRY | 服务器公钥(可选),用于跳过交互式主机密钥确认。 | - | 字符串,原公钥换行符需替换为\n |
bashdocker run -d \ -e HOMEGEARBUILD_THREADS=4 \ # 使用4线程构建 --name homegear-build \ homegear/build-env
假设需上传testing类型包至服务器example.com,端口22,用户builduser,APT仓库路径/var/apt/repos/testing,私钥证书已base64编码并替换换行符:
bashdocker run -d \ -e HOMEGEARBUILD_THREADS=4 \ -e HOMEGEARBUILD_TYPE=testing \ -e HOMEGEARBUILD_SERVERNAME=example.com \ -e HOMEGEARBUILD_SERVERPORT=22 \ -e HOMEGEARBUILD_SERVERUSER=builduser \ -e HOMEGEARBUILD_REPOSITORYSERVERPATH=/var/apt/repos/testing \ -e HOMEGEARBUILD_SERVERCERT="LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQp...(base64编码的私钥,换行替换为\n)" \ -e HOMEGEARBUILD_SERVER_KNOWNHOST_ENTRY="example.com ssh-rsa AAAAB3NzaC1yc2EAAA...(服务器公钥,换行替换为\n)" \ --name homegear-build-upload \ homegear/build-env
yamlversion: '3' services: homegear-build: image: homegear/build-env environment: - HOMEGEARBUILD_THREADS=4 - HOMEGEARBUILD_TYPE=nightly - HOMEGEARBUILD_SERVERNAME=build-server.internal - HOMEGEARBUILD_SERVERPORT=2222 - HOMEGEARBUILD_SERVERUSER=ci-user - HOMEGEARBUILD_NIGHTLYSERVERPATH=/data/nightly-builds - HOMEGEARBUILD_SERVERCERT=${SSH_PRIVATE_KEY_BASE64} # 从环境变量传入base64证书 - HOMEGEARBUILD_SERVER_KNOWNHOST_ENTRY=${SERVER_KNOWN_HOST} # 从环境变量传入公钥 restart: on-failure
qemu和qemu-user-static,否则可能导致构建失败。HOMEGEARBUILD_SERVERCERT和HOMEGEARBUILD_SERVER_KNOWNHOST_ENTRY中的换行符必须替换为\n,避免命令解析错误。HOMEGEARBUILD_REPOSITORYSERVERPATH用于stable/testing类型(APT仓库),HOMEGEARBUILD_NIGHTLYSERVERPATH用于nightly类型(独立路径),需根据HOMEGEARBUILD_TYPE正确配置对应路径。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务