轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
cycle-cli

cyclelabs/cycle-cli

cyclelabs

Cycle CLI的容器化版本,可在容器中执行Cycle测试,支持本地环境和CI/CD流水线,无需Windows虚拟机,兼容Linux架构,提升测试灵活性和成本效益。

1 次收藏下载次数: 0状态:社区镜像维护者:cyclelabs仓库类型:镜像最近更新:25 天前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。
点击查看

Cycle CLI 容器化版本技术文档

概述和主要用途

Cycle CLI容器化版本是将Cycle命令行界面(CLI)打包为容器的解决方案。传统上,Cycle CLI与Cycle测试自动化软件安装程序一起分发,而容器化版本增强了灵活性,允许用户不仅在本地环境,更重要的是在CI/CD流水线中执行Cycle测试,无需专用Windows虚拟机代理,同时兼容Linux架构。尽管在容器中可执行的测试类型存在一定限制,但它为许多客户提供了可行的替代方案。

核心功能和特性

主要优势

  • 可移植性:容器完全独立,包含运行cycle-cli所需的所有依赖,可在任何支持容器运行时的环境(如Azure DevOps、GitLab、GitHub Actions的托管代理/运行器)中运行,无需对执行系统进行额外配置。
  • 成本效益:不再要求运行硬件架构为Windows,可在Linux虚拟机或Azure容器实例等工具上运行,减少虚拟机层,降低测试执行成本。
  • 自动化友好:轻松集成到任何CI/CD平台,每次自动化执行都在全新容器环境中启动,确保环境清洁。

使用场景和适用范围

  • 本地测试:开发人员在本地设备上快速执行Cycle测试,无需复杂环境配置。
  • CI/CD流水线:集成到Jenkins、GitHub Actions、GitLab CI等CI/CD平台,实现测试自动化,支持多阶段测试流程。
  • 跨平台测试:在Linux环境中执行原本依赖Windows的Cycle测试,扩展测试环境兼容性。

使用要求

  • Docker Engine:需安装Docker运行时环境。
  • 操作系统:支持Linux、Windows或macOS。
  • Cycle认证:通过token或client-id/client-credential(推荐)进行Cycle认证,详情参见Cycle OAuth2认证文档。

详细使用方法和配置说明

Docker卷挂载(Volume Mapping)

容器需要访问本地Cycle项目文件(如.cycproj、.feature文件),通过-v参数将主机目录挂载到容器内的/code目录。

基本语法

bash
docker run -v "$(pwd):/code"

说明

  • $(pwd):主机当前工作目录(Cycle项目所在目录)。
  • /code:容器内的目标目录,项目文件将映射到此处,容器可访问其中的.cycproj、config/secrets.conf及/combined文件夹等。

环境变量映射(Environment Variable Mapping)

通过--env参数将主机环境变量传递到容器,至少需传递Cycle认证所需的DOCKERIZED_CYCLE_APP_ID和DOCKERIZED_CYCLE_APP_SECRET。

基本语法

bash
docker pull cyclelabs/cycle-cli:latest
docker run --rm \
  --env DOCKERIZED_CYCLE_APP_ID="${DOCKERIZED_CYCLE_APP_ID}" \
  --env DOCKERIZED_CYCLE_APP_SECRET="${DOCKERIZED_CYCLE_APP_SECRET}" \
  cyclelabs/cycle-cli:latest \
  --clientid "${DOCKERIZED_CYCLE_APP_ID}" \
  --client-credential "${DOCKERIZED_CYCLE_APP_SECRET}" \
  -p /code combined/api-test.feature

关键环境变量

环境变量说明
DOCKERIZED_CYCLE_APP_IDCycle应用的AppID
DOCKERIZED_CYCLE_APP_SECRETCycle应用的密钥

使用.conf文件管理配置和秘密

配置文件(.conf)用于安全映射秘密值,避免明文暴露,使cycle-cli可在测试中使用这些值。

1. .conf文件与Cycle变量映射

在Cycle测试的.feature文件中,通过Background步骤从.conf文件加载变量:

gherkin
Background:
If I verify file "combined/local.conf" exists
Then I assign values from config file "combined/local.conf" to variables
Else I assign values from config file "combined/secrets.conf" to variables
EndIf

2. .conf文件示例(secrets.conf)

将环境变量映射为Cycle变量:

ini
pw_oracle_db=${PW_ORACLE_DB}
pw_sql_db=${PW_SQL_DB}
pw_db2=${PW_DB2}
pw_mysql=${PW_MYSQL}
pw_openssh=${PW_OPENSSH}

3. 在.feature文件中使用变量

引用上述配置的变量(如$pw_openssh):

gherkin
Scenario: OpenSSH/Linux - Cycle CI
When I open terminal with SSH encryption connected to "openssh.ci.cyclelabs.io:22" logged in as "cycl-ci" $pw_openssh sized to 25 lines and 80 columns
Then I see "~]$" on last line in terminal within 15 seconds
    And I close terminal

4. 变量黑名单(VariableBlacklist)

为防止秘密值在Cycle报告中明文显示,需在.cycproj文件中配置VariableBlacklist:

json
"VariableBlackList": ["pw_azuresql", "pw_db2", "pw_moca", "pw_mysql", "pw_oracle_db", "pw_openssh"]

Docker Compose配置

使用docker-compose.yml可简化多容器协调(如Cycle CLI容器与Selenium Chrome容器)和环境配置。

示例:Chrome浏览器测试的docker-compose.yml

yaml
services:
  cycle-browser-test-chrome:
    image: "cyclelabs/cycle-cli:latest"
    shm_size: 2g
    volumes:
      - .:/code  # 挂载当前目录到容器/code
    depends_on:
      - "chrome"  # 依赖Chrome容器启动
    environment:
      DOCKERIZED_CYCLE_APP_ID: ${DOCKERIZED_CYCLE_APP_ID}
      DOCKERIZED_CYCLE_APP_SECRET: ${DOCKERIZED_CYCLE_APP_SECRET}
      PW_OPENSSH: ${PW_OPENSSH}  # 其他秘密环境变量
    command: ["--clientid", "${DOCKERIZED_CYCLE_APP_ID}", "--client-credential", "${DOCKERIZED_CYCLE_APP_SECRET}", "-p", "/code", "combined/grocerio-browser-test-chrome.feature"]

  chrome:
    image: "selenium/standalone-chrome"
    environment:
      - CHROME_OPTS=--no-sandbox --disable-dev-shm-usage --headless
    volumes:
      - /dev/shm:/dev/shm
    ports:
      - "4444:4444"
    hostname: chrome
    privileged: true
    shm_size: 2g

说明

  • depends_on:确保chrome容器先启动,Cycle测试才能连接Chrome浏览器。
  • shm_size:设置共享内存大小,避免浏览器运行时内存不足。
  • command:指定Cycle CLI执行命令,包括认证参数和测试特征文件路径。

CI/CD平台集成

Jenkins集成示例

在Jenkins流水线中,通过Jenkinsfile配置多阶段测试,使用Docker Compose执行不同类型的Cycle测试。

Jenkinsfile片段

groovy
stage('Run Cycle Browser Test - Chrome') {
    steps {
        catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
            sh "docker compose -f chrome-test-docker-compose.yml up --attach cycle-browser-test-chrome --abort-on-container-exit"
            sh "docker compose -f chrome-test-docker-compose.yml down"
        }
    }
}

秘密管理

Jenkins中通过"Manage Jenkins → Manage Credentials"存储秘密,在流水线中引用:

groovy
environment {
    DOCKERIZED_CYCLE_APP_ID = credentials('cycle-app-id')
    DOCKERIZED_CYCLE_APP_SECRET = credentials('cycle-app-secret')
}

GitHub Actions集成示例

在GitHub Actions中,通过secrets存储秘密,在工作流文件中映射为环境变量。

.github/workflows/cycle-test.yml片段

yaml
jobs:
  cycle-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Cycle test with Docker Compose
        env:
          DOCKERIZED_CYCLE_APP_ID: ${{ secrets.DOCKERIZED_CYCLE_APP_ID }}
          DOCKERIZED_CYCLE_APP_SECRET: ${{ secrets.DOCKERIZED_CYCLE_APP_SECRET }}
        run: |
          docker compose -f chrome-test-docker-compose.yml up --attach cycle-browser-test-chrome --abort-on-container-exit

本地运行指南

1. 设置环境变量

Windows(命令提示符)

cmd
set DOCKERIZED_CYCLE_APP_ID=your-app-id
set DOCKERIZED_CYCLE_APP_SECRET=your-app-secret

Windows(PowerShell)

powershell
$env:DOCKERIZED_CYCLE_APP_ID="your-app-id"
$env:DOCKERIZED_CYCLE_APP_SECRET="your-app-secret"

Mac/Linux(终端)

bash
export DOCKERIZED_CYCLE_APP_ID="your-app-id"
export DOCKERIZED_CYCLE_APP_SECRET="your-app-secret"

2. 执行单特征文件(docker run)

bash
docker pull cyclelabs/cycle-cli:latest
docker run --rm \
  --shm-size=2g \
  -v "$(pwd):/code" \
  --env DOCKERIZED_CYCLE_APP_ID="${DOCKERIZED_CYCLE_APP_ID}" \
  --env DOCKERIZED_CYCLE_APP_SECRET="${DOCKERIZED_CYCLE_APP_SECRET}" \
  cyclelabs/cycle-cli:latest \
  --clientid "${DOCKERIZED_CYCLE_APP_ID}" \
  --client-credential "${DOCKERIZED_CYCLE_APP_SECRET}" \
  -p /code combined/api-test.feature

3. 执行Docker Compose文件

在包含docker-compose.yml的目录中运行:

bash
docker compose up

执行完成后停止并移除容器:

bash
docker compose down

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 cycle-cli 镜像标签

docker pull docker.xuanyuan.run/cyclelabs/cycle-cli:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull cyclelabs/cycle-cli:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

一键安装

一键安装 Docker

Linux Docker 一键安装

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

免费版与专业版区别

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
cyclelabs/cycle-cli
教程轩辕镜像功能与使用教程
定价查看流量套餐与价格
热门查看热门 Docker 镜像推荐
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
商务合作:点击复制邮箱
用户协议·隐私政策·©2024-2026 源码跳动
用户协议·隐私政策©2024-2026 杭州源码跳动科技有限公司商务合作:点击复制邮箱

更多 cycle-cli 镜像推荐

buildpacksio/lifecycle logo

buildpacksio/lifecycle

buildpacksio
Cloud Native Buildpacks规范的参考实现
4 次收藏1000万+ 次下载
13 天前更新
biocontainers/cycle logo

biocontainers/cycle

biocontainers
暂无描述
8.5千+ 次下载
6 年前更新
staphb/unicycler logo

staphb/unicycler

staphb
StaPH-B联盟的Docker镜像仓库,包含多种生物信息学工具的Dockerfile及相关文件,提供集中化、易于访问的镜像资源和详细的容器构建与使用文档。
5万+ 次下载
1 年前更新
biocontainers/unicycler logo

biocontainers/unicycler

biocontainers
暂无描述
1 次收藏8.6千+ 次下载
6 年前更新
biocontainers/unicycler-data logo

biocontainers/unicycler-data

biocontainers
暂无描述
8千+ 次下载
6 年前更新
nanozoo/unicycler logo

nanozoo/unicycler

nanozoo
Unicycler v0.4.8-0 Docker镜像是基于rrwick/Unicycler的基因组组装工具,用于结合短读长(如Illumina)和长读长(如PacBio/Nanopore)测序数据进行细菌基因组组装,支持生成高质量环形基因组。
3.1千+ 次下载
4 年前更新

查看更多 cycle-cli 相关镜像