ehealthafrica/concourse-flyConcourse fly CLI镜像包含Concourse CI/CD平台的官方命令行工具(fly),提供与Concourse部署实例的命令行交互能力。该镜像可替代本地安装fly CLI,尤其适用于容器化环境,通过Docker容器直接运行fly命令,避免本地环境依赖冲突,简化CI/CD流程的命令行操作。
通过docker run直接执行fly命令,基础格式:
bashdocker run --rm concourse/fly [fly命令及参数]
示例1:查看fly版本
bashdocker run --rm concourse/fly -v # 输出示例:fly version 7.9.1
示例2:登录Concourse实例
需指定Concourse API地址、目标名称及认证信息:
bashdocker run --rm \ -e CONCOURSE_API=[***] \ -e CONCOURSE_USERNAME=admin \ -e CONCOURSE_PASSWORD=secret \ concourse/fly login --target my-target --insecure-skip-verify
说明:
--insecure-skip-verify用于跳过SSL证书验证(仅测试环境使用),生产环境建议挂载证书。
示例3:创建/更新管道
需挂载本地管道配置文件(如pipeline.yml)到容器内,并指定目标:
bashdocker run --rm \ -v $(pwd)/pipeline.yml:/pipeline.yml \ concourse/fly set-pipeline --target my-target --pipeline my-pipeline --config /pipeline.yml
fly会将目标配置、认证信息保存在~/.flyrc文件中。为避免每次运行重新配置,可将本地.flyrc挂载到容器内:
bash# 首次登录时挂载空文件,生成配置 docker run --rm \ -v $(pwd)/.flyrc:/root/.flyrc \ concourse/fly login --target my-target --api [***] --username admin --password secret # 后续使用时直接挂载已生成的.flyrc,无需重复登录 docker run --rm \ -v $(pwd)/.flyrc:/root/.flyrc \ concourse/fly pipelines --target my-target
通过环境变量简化命令参数,常用变量:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
CONCOURSE_TARGET | 默认Concourse目标名称(替代--target) | my-target |
CONCOURSE_API | Concourse API地址(替代--api) | [***] |
CONCOURSE_USERNAME | 登录用户名(替代--username) | admin |
CONCOURSE_PASSWORD | 登录密码(替代--password) | secret |
CONCOURSE_TEAM | 目标团队名称(替代--team) | main |
查看所有管道:
bashdocker run --rm -v $(pwd)/.flyrc:/root/.flyrc concourse/fly pipelines --target my-target
更新管道配置:
bashdocker run --rm \ -v $(pwd)/.flyrc:/root/.flyrc \ -v $(pwd)/new-pipeline.yml:/new-pipeline.yml \ concourse/fly set-pipeline --target my-target --pipeline my-pipeline --config /new-pipeline.yml
删除管道:
bashdocker run --rm -v $(pwd)/.flyrc:/root/.flyrc concourse/fly destroy-pipeline --target my-target --pipeline my-pipeline
运行单个任务(本地测试):
需挂载任务配置文件及输入资源目录:
bashdocker run --rm \ -v $(pwd)/task.yml:/task.yml \ -v $(pwd)/inputs:/inputs \ concourse/fly execute --config /task.yml --input my-input=/inputs
查看任务日志:
bashdocker run --rm -v $(pwd)/.flyrc:/root/.flyrc \ concourse/fly watch --job my-pipeline/my-job --build 1
.flyrc、管道配置)时,确保容器内用户(默认root)对挂载文件有读写权限。-v /path/to/certs:/etc/ssl/certs挂载CA证书,替代--insecure-skip-verify。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务