本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本镜像包含带有Earthly特定配置的buildkit,是Earthly使用本地守护进程时启动的组件。也可手动启动并作为远程/共享的BuildKit守护进程使用。
注意:本容器版本仅与对应版本的
earthly测试过,不支持版本不匹配的情况。
当前,latest标签对应版本为v0.8.13。
其他可用标签请查看 [***]
以下是覆盖最常见用例的docker run命令示例:
docker run --privileged -t -v earthly-tmp:/tmp/earthly:rw earthly/buildkitd:v0.7.19
参数说明:
--privileged:必需,Earthly需要buildkit的某些特权功能。-t:让Docker模拟TTY,使buildkit日志输出彩色化。-v earthly-tmp:/tmp/earthly:rw:将earthly-tmpDocker卷挂载到容器的/tmp/earthly(若不存在则创建),用作buildkitd构建期间的临时/工作目录。在本地运行时,可通过设置EARTHLY_BUILDKIT_HOST=docker-container://<容器名称>或在config.yml中指定相应值来使用此buildkitd。
docker run --privileged -t -v earthly-tmp:/tmp/earthly:rw -e BUILDKIT_TCP_TRANSPORT_ENABLED=true -p 8372:8372 earthly/buildkitd:v0.7.19
新增参数说明(已讨论的参数不再重复):
-e BUILDKIT_TCP_TRANSPORT_ENABLED=true:使buildkitd监听TCP端口而非Unix socket。-p 8372:8372:将主机端口8372转发到容器端口8372。使用TCP时,buildkit始终监听8372,可通过转发不同主机端口修改对外端口。若在名为fast-builder的机器上运行,可通过设置EARTHLY_BUILDKIT_HOST=tcp://fast-builder:8372或在config.yml中指定地址来使用此远程buildkitd。
本镜像需以特权容器运行,因为buildkitd需要通过runc启动和运行其他容器的适当权限。
/tmp/earthly目录由于该目录有大量读写操作,保持其高速访问至关重要。强烈建议使用Docker卷挂载/tmp/earthly。若不使用,buildkitd可能会消耗过多磁盘空间、运行缓慢或无法正常工作。
在某些环境中,未将/tmp/earthly挂载为Docker卷可能导致以下错误:
--> WITH DOCKER RUN --privileged ... ... rm: can't remove '/var/earthly/dind/...': Resource busy
要外部使用本镜像,需将主机端口转发到容器的8372端口,并确保外部可访问该主机端口。
本地使用earthly时,若EARTHLY_BUILDKIT_HOST设置为127.0.0.1、::1/128或localhost,Earthly会认为是本地并尝试自行管理BuildKit容器。建议使用主机名或其他替代名称。
| 变量名 | 默认值 | 描述 |
|---|---|---|
| EARTHLY_ADDITIONAL_BUILDKIT_CONFIG | 要追加到生成的配置文件中的额外buildkitd配置 | |
| BUILDKIT_TCP_TRANSPORT_ENABLED | 当buildkitd实例用于远程时,设为true | |
| BUILDKIT_TLS_ENABLED | 当buildkitd实例要求客户端使用mTLS时,设为true。需将证书挂载到正确位置(/etc/*.pem) | |
| CNI_MTU | 第一个默认接口的MTU | 自动检测MTU错误时设置。自动检测使用的设备可通过命令查看:ip route show | grep ^default | head -n 1 | sed 's|.* dev \(\w*\)\s.*|\1|' |
| EARTHLY_RESET_TMP_DIR | false | 设为true时,运行前清理/tmp/earthly。跨运行主机挂载临时目录时有用 |
| NETWORK_MODE | cni | 指定buildkitd的网络模式。默认使用CNI桥接网络,通过CNI_MTU配置 |
| CACHE_SIZE_MB | 0 | buildkitd缓存允许的最大大小(MiB)。0表示无限制 |
| GIT_URL_INSTEAD_OF | 配置buildkitd使用的git config --global url.<url>.insteadOf规则 | |
| IP_TABLES | 覆盖用于配置ip_tables的二进制文件(iptables_nft或iptables_legacy)。仅在平台自动检测失败时设置 |
免费版仅支持 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