本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

和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:
shellcheck 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429