和bash。
您可以通过环境变量配置Gantry的大多数行为。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| GANTRY_LOG_LEVEL | INFO | 控制Gantry生成的日志数量。有效值为NONE、ERROR、WARN、INFO、DEBUG。 |
| GANTRY_NODE_NAME | 向日志添加节点名称。若未设置,Gantry将使用Docker Swarm管理节点的主机名(从当前节点的Docker守护进程套接字或DOCKER_HOST读取)。 | |
| GANTRY_POST_RUN_CMD | 每次更新迭代后要eval执行的命令。例如,您可以使用此命令删除未使用的容器、网络和镜像,或更新独立Docker容器(参见示例)。 | |
| GANTRY_PRE_RUN_CMD | 每次更新迭代前要eval执行的命令。例如,您可以使用此命令删除未使用的容器、网络和镜像,或更新独立Docker容器(参见示例)。若预运行命令执行失败,Gantry将跳过服务更新。 | |
| GANTRY_SLEEP_SECONDS | 0 | 两次更新之间的间隔(秒)。设为0表示运行一次后退出。当设为非零值时,更新完成后Gantry将休眠至下次计划更新时间(实际休眠时间为该值减去更新耗时)。 |
| TZ | 设置日志中的时区。 |
Gantry基于Docker命令行,Docker命令行的环境变量同样适用于Gantry。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| DOCKER_CONFIG | 客户端配置文件的位置,用于存储认证信息。适用于所有Docker命令(即所有服务)。参见认证。您可以通过标签为特定服务设置不同值。 | |
| GANTRY_REGISTRY_CONFIG | 参见认证。 | |
| GANTRY_REGISTRY_CONFIG_FILE | 参见认证。 | |
| GANTRY_REGISTRY_CONFIGS_FILE | 参见认证。 | |
| GANTRY_REGISTRY_HOST | 参见认证。 | |
| GANTRY_REGISTRY_HOST_FILE | 参见认证。 | |
| GANTRY_REGISTRY_PASSWORD | 参见认证。 | |
| GANTRY_REGISTRY_PASSWORD_FILE | 参见认证。 | |
| GANTRY_REGISTRY_USER | 参见认证。 | |
| GANTRY_REGISTRY_USER_FILE | 参见认证。 |
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| GANTRY_SERVICES_EXCLUDED | 空格分隔的服务名称列表,这些服务将被排除在更新之外。 | |
| GANTRY_SERVICES_EXCLUDED_FILTERS | label=gantry.services.excluded=true | 空格分隔的过滤器列表,例如label=project=project-a。排除匹配给定过滤器的服务。默认值允许您通过为服务添加标签gantry.services.excluded=true来排除它们。注意:多个过滤器为逻辑“与”关系。空字符串表示无过滤器,Gantry将更新所有服务。 |
| GANTRY_SERVICES_FILTERS | 空格分隔的过滤器列表,用于docker service ls --filter选择要更新的服务,例如label=project=project-a。注意:多个过滤器为逻辑“与”关系。空字符串表示无过滤器,Gantry将更新所有服务。另请参见如何按名称过滤多个服务。 |
注意:Gantry读取服务上的标签,而非容器上的标签。若使用docker-compose文件设置服务,标签需添加到deploy部分。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| GANTRY_MANIFEST_CMD | buildx | 有效值为buildx、manifest和none。设置用于检查镜像清单的命令:
none将跳过清单检查,此时docker service update将始终执行。另请参见FAQ如何选择GANTRY_MANIFEST_CMD。您可以通过标签为特定服务设置不同值。 |
| GANTRY_MANIFEST_NUM_WORKERS | 1 | 可并行运行的GANTRY_MANIFEST_CMD最大数量。 |
| GANTRY_MANIFEST_OPTIONS | 附加到docker buildx imagetools inspect或docker manifest inspect命令的选项(取决于GANTRY_MANIFEST_CMD的值),适用于所有服务。您可以通过标签为特定服务设置不同值。 |
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| GANTRY_ROLLBACK_ON_FAILURE | true | 设为true时,更新失败将自动回滚;设为false则禁用回滚。您可以通过标签为特定服务设置不同值。 |
| GANTRY_ROLLBACK_OPTIONS | 附加到docker service update --rollback命令的选项,适用于所有服务。您可以通过标签为特定服务设置不同值。 | |
| GANTRY_UPDATE_JOBS | false | 设为true时更新replicated-job或global-job类型的服务;设为false则禁用。当服务无运行任务时,Gantry会向docker service update添加额外选项。您可以通过标签为特定服务设置不同值。 |
| GANTRY_UPDATE_NUM_WORKERS | 1 | 可并行执行的更新操作最大数量。 |
| GANTRY_UPDATE_OPTIONS | 附加到docker service update命令的选项,适用于所有服务。您可以通过标签为特定服务设置不同值。 | |
| GANTRY_UPDATE_TIMEOUT_SECONDS | 0 | 单个服务更新超时时间(秒)。设为0禁用超时。您可以通过标签为特定服务设置不同值。 |
| 环境变量 | 默认值 | 描述 |
|---|---|---|
| GANTRY_CLEANUP_IMAGES | true | 设为true时清理所有主机上已更新的旧镜像;设为false则禁用清理。清理前,Gantry将尝试删除使用这些镜像的所有已退出(exited)和已终止(dead)容器。 |
| GANTRY_CLEANUP_IMAGES_OPTIONS | 附加到docker service create命令的选项,用于创建清理镜像的全局任务。您可以使用此选项为服务或容器添加标签。 | |
| GANTRY_NOTIFICATION_APPRISE_URL | 通过Apprise启用服务更新通知。此值必须指向通知端点(例如[***])。 | |
| GANTRY_NOTIFICATION_CONDITION | all | 有效值为all和on-change。指定发送通知的条件:all表示每次运行都发送通知;on-change仅在有更新或错误时发送通知。 |
| GANTRY_NOTIFICATION_TITLE | 向通知标题添加附加消息。 |
您可以为服务添加标签以修改Gantry对特定服务的行为。当Gantry检测到服务上有以下标签时,将仅为该服务修改Docker命令行。标签的值会覆盖全局环境变量。
注意:Gantry读取服务上的标签,而非容器上的标签。若使用docker-compose文件设置服务,标签需添加到deploy部分。
| 标签 | 描述 |
|---|---|
gantry.auth.config=<configuration> | 覆盖DOCKER_CONFIG。参见认证。 |
gantry.services.excluded=true | 若使用默认GANTRY_SERVICES_EXCLUDED_FILTERS,此标签会将服务排除在更新之外。 |
gantry.manifest.cmd=<command> | 覆盖GANTRY_MANIFEST_CMD。 |
gantry.manifest.options=<string> | 覆盖GANTRY_MANIFEST_OPTIONS。 |
gantry.rollback.on_failure=<boolean> | 覆盖GANTRY_ROLLBACK_ON_FAILURE。 |
gantry.rollback.options=<string> | 覆盖GANTRY_ROLLBACK_OPTIONS。 |
gantry.update.jobs=<boolean> | 覆盖GANTRY_UPDATE_JOBS。 |
gantry.update.options=<string> | 覆盖GANTRY_UPDATE_OPTIONS。 |
gantry.update.timeout_seconds=<number> | 覆盖GANTRY_UPDATE_TIMEOUT_SECONDS。 |
认证
常见问题
从Shepherd迁移
Gantry设计兼容busybox ash(v1.35+),因此可在基于Alpine的容器中运行,无需安装额外包。唯一例外是通知功能需要curl。Gantry也已在bash中测试通过。
代码提交时会运行shellcheck以确保Shell脚本最佳实践。由于busybox ash支持比POSIX sh更多的特性,部分检查已禁用。禁用的检查列表见.shellcheckrc。
本地运行shellcheck:
bashshellcheck src/*.sh tests/*.sh
tests文件夹包含端到端测试,覆盖大多数配置选项。
如有任何问题或疑问,请通过GitHub issue联系。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429