如何解决Skaffold 开发失败 说明GitHub 链接解决方法
我在运行 skaffold dev 后遇到此错误。
Step 1/6 : FROM node:current-alpine3.11
exiting dev mode because first build Failed: unable to stream build output: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.49.1:53: read udp 192.168.49.2:35889->192.168.49.1:53: I/O timeout. Please fix the Dockerfile and try again..
这里是 skaffold.yml
apiVersion: skaffold/v2beta11
kind: Config
Metadata:
name: *****
build:
artifacts:
- image: 127.0.0.1:32000/auth
context: auth
docker:
dockerfile: Dockerfile
deploy:
kubectl:
manifests:
- infra/k8s/auth-depl.yaml
local:
push: false
artifacts:
- image: 127.0.0.1:32000/auth
context: auth
docker:
dockerfile: Dockerfile
sync:
manual:
- src: "src/**/*.ts"
dest: .
我已经尝试了我在网上看到的所有可能的解决方案,包括将 8.8.8.8 添加为 DNS,但错误仍然存在。我正在使用 Linux 并运行 ubuntu,我也在本地使用 Minikube。请协助。
解决方法
这是一个社区 Wiki 答案,发布是为了更好的可见性,因此请随意编辑它并添加您认为重要的任何其他详细信息。
在这种情况下:
minikube delete && minikube start
解决了问题,但您可以从重新启动docker daemon 开始。由于这是 Minikube 集群并且 Skaffold 用于其构建Minikube 的 Docker 守护进程,正如 Brian de Alwis 在他的评论中所建议的那样,您可以开始于:
minikube stop && minikube start
或
minikube ssh
su
systemctl restart docker
我搜索了类似的错误,在很多情况下,例如here 或 in this thread,将您的 DNS 设置为诸如 8.8.8.8
之类的可靠内容也可能有所帮助:
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
如果您使用 Minikube,您应该首先:
minikube ssh
su ### to become root
然后运行:
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
以下错误信息:
Please fix the Dockerfile and try again
在类似情况下可能会有些误导,因为 Dockerfile
可能完全没问题,但正如我们在其他部分所读到的:
lookup registry-1.docker.io on 192.168.49.1:53: read udp 192.168.49.2:35889->192.168.49.1:53: i/o timeout.
这肯定与 DNS 查找失败有关。这被很好地描述为 here 众所周知的问题。
获取 i/o 超时
获取 https://index.docker.io/v1/repositories//images: dial tcp: lookup on :53: read udp :53: i/o timeout
说明
主机上配置的 DNS 解析器无法解析注册表的 主机名。
GitHub 链接
不适用
解决方法
重试操作,或者如果错误仍然存在,请使用另一个 DNS
解析器。您可以通过更新您的 /etc/resolv.conf
文件来做到这一点
使用这些或其他 DNS 服务器:
nameserver 8.8.8.8 nameserver 8.8.4.4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。