earthly 使用中碰到的一些问题说明
buildkit依赖
earthly 依赖buildkit,我们可以自己搭建buildkit集群,或者earthly自己基于容器运行,可以通过
--buildkit-image
指定buildkit的镜像,当前的为earthly/buildkitd:v0.1.0
无网络环境的问题
目前在测试机器无网络环境构建镜像的时候发现暂时不太好事(buildkit的原因),通过大略查看buildkit 的源码,发现
在upack 阶段会有根据manifest 发去http 请求的处理,如果机器没有网络会有类似如下的错误
failed to load cache key: failed to do request: Head https://registry-1.docker.io/v2/library/busybox/manifests/1.31.1:
dial tcp 54.210.105.17:443: i/o timeout
earthly 大致流程(后边详细介绍)
通过bcc的execsnoop查看到的,有利于学习earthly的一些原理
- 测试的命令
earth --buildkit-image xxxx/buildkitd:v0.1.0 +docker
效果
PCOMM PID PPID RET ARGS
earth 24375 23225 0 /bin/earth --buildkit-image xxxxxxx +docker
docker 24381 24375 0
docker 24393 24375 0 /bin/docker inspect --format={{index .Image}} earthly-buildkitd
docker 24405 24375 0 /bin/docker inspect --format={{index .Id}} xxxxxx
docker 24420 24375 0 /bin/docker inspect --format={{index .Config.Labels "dev.earthly.settingshash"}} earthly-buildkitd
sh 24437 24375 0 /bin/sh -c which git
docker 24438 24375 0 /bin/docker exec -i earthly-buildkitd buildctl dial-stdio
which 24437 24375 0 /bin/which git
git 24441 24375 0 /bin/git status
runc 24461 23742 0
runc 24467 23742 0 /usr/bin/runc --root /var/run/docker/runtime-runc/moby --log /run/containerd/io.containerd.runtime.v1.linux/moby/064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d/log.json --log-format json state 064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d
runc 24472 23742 0 /usr/bin/runc --root /var/run/docker/runtime-runc/moby --log /run/containerd/io.containerd.runtime.v1.linux/moby/064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d/log.json --log-format json exec --process /tmp/runc-process893340392 --detach --pid-file /run/containerd/io.containerd.runtime.v1.linux/moby/064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d/09d4ab62304 064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d
exe 24478 24472 0 /proc/self/exe init
5 24478 24472 0 /proc/self/fd/5 init
buildctl 24480 24472 0 /usr/bin/buildctl dial-stdio
runc 24486 23742 0 /usr/bin/runc --root /var/run/docker/runtime-runc/moby --log /run/containerd/io.containerd.runtime.v1.linux/moby/064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498d/log.json --log-format json state 064cae451e890ef1c29d04787db27d62da453e1a3000e925a64adad789d3498
说明
以上是在使用中碰到的一些问题,后期再仔细研究下buildkit的原理,可以是否有方法可以解决网络的问题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)