buildkite/test-engine-clientBuildkite Test Engine Client (bktec) Docker镜像是封装了Buildkite Test Engine Client工具的容器化解决方案。该镜像旨在提供一个隔离、一致且易于部署的环境,用于与Buildkite Test Engine交互,执行、管理和监控测试任务。
docker run)bashdocker run -d \ --name bktec-client \ -e BUILDKITE_API_TOKEN="your-buildkite-api-token" \ -e TEST_ENGINE_URL="[***]" \ -e LOG_LEVEL="info" \ -v /path/to/local/test/files:/tests \ buildkite/bktec:latest
yamlversion: "3.8" services: bktec: image: buildkite/bktec:latest container_name: bktec-client restart: unless-stopped environment: - BUILDKITE_API_TOKEN=${BUILDKITE_API_TOKEN} # 从环境变量注入,避免硬编码 - TEST_ENGINE_URL=[***] - LOG_LEVEL=debug - TEST_WORKDIR=/tests - MAX_CONCURRENT_TESTS=4 volumes: - ./local-test-files:/tests # 挂载本地测试文件到容器 - ./bktec-config:/etc/bktec # 挂载自定义配置文件 networks: - buildkite-network # 与Buildkite Agent共享网络 networks: buildkite-network: driver: bridge
| 环境变量名 | 描述 | 默认值 | 是否必填 |
|---|---|---|---|
BUILDKITE_API_TOKEN | Buildkite API访问令牌,用于身份验证 | - | 是 |
TEST_ENGINE_URL | Buildkite Test Engine服务端URL | [***] | 否 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info | 否 |
TEST_WORKDIR | 容器内测试执行工作目录 | /tests | 否 |
MAX_CONCURRENT_TESTS | 最大并发测试任务数 | 2 | 否 |
CONNECT_TIMEOUT | 与Test Engine连接超时时间(秒) | 30 | 否 |
LOG_OUTPUT_PATH | 日志输出文件路径(容器内) | /var/log/bktec.log | 否 |
PROXY_URL | 代理服务器URL(如需通过代理连接Test Engine) | - | 否 |
如需更复杂的配置(如测试框架适配、任务过滤规则等),可通过挂载配置文件实现。默认配置文件路径为 /etc/bktec/config.yaml,示例配置:
yaml# /etc/bktec/config.yaml 示例 test-frameworks: - name: junit command: mvn test pattern: "**/target/surefire-reports/*.xml" - name: pytest command: pytest pattern: "**/pytest-results.xml" task-filters: exclude-tags: ["flaky", "manual"] include-labels: ["smoke", "regression"] retry-policy: max-retries: 2 delay-seconds: 10
挂载方式(在docker run中添加):
bash-v /path/to/local/config.yaml:/etc/bktec/config.yaml
在Buildkite CI流程中,可通过Agent插件形式调用bktec容器执行测试:
yaml# buildkite-agent.yml 配置片段 steps: - label: "Run tests via bktec" command: docker-compose run bktec /bin/sh -c "bktec run --test-suite=unit" plugins: - docker-compose#v4.12.0: run: bktec config: docker-compose.yml
BUILDKITE_API_TOKEN 包含敏感权限,建议通过CI/CD平台的密钥管理功能注入(如GitHub Secrets、GitLab CI Variables),避免硬编码TEST_ENGINE_URL指向内部地址--memory和--cpus限制容器资源,避免影响宿主或其他容器LOG_OUTPUT_PATH),建议挂载日志目录至宿主,便于持久化存储和分析alpine:3.18amd64、arm64buildkite/bktec:latest(对应bktec v1.5.0)buildkite/bktec:<bktec-version>-alpine(如buildkite/bktec:1.5.0-alpine)

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务