Skaffold 开发失败
Skaffold dev fails
我遇到这个错误,在 运行 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 守护进程 开始。由于这是 Minikube 集群并且 Skaffold 用于其构建 Minikube 的 Docker 守护进程 ,作为Brian de Alwis 在他的评论中建议,你可以从:
minikube stop && minikube start
或
minikube ssh
su
systemctl restart docker
我搜索了类似的错误,在很多情况下,例如here or 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 有很好的描述。
Get i/o timeout
Get https://index.docker.io/v1/repositories//images: dial tcp: lookup on :53: read udp :53: i/o timeout
Description
The DNS resolver configured on the host cannot resolve the registry’s
hostname.
GitHub link
N/A
Workaround
Retry the operation, or if the error persists, use another DNS
resolver. You can do this by updating your /etc/resolv.conf
file
with these or other DNS servers:
nameserver 8.8.8.8 nameserver 8.8.4.4
我遇到这个错误,在 运行 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 守护进程 开始。由于这是 Minikube 集群并且 Skaffold 用于其构建 Minikube 的 Docker 守护进程 ,作为Brian de Alwis 在他的评论中建议,你可以从:
minikube stop && minikube start
或
minikube ssh
su
systemctl restart docker
我搜索了类似的错误,在很多情况下,例如here or 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 有很好的描述。
Get i/o timeout
Get https://index.docker.io/v1/repositories//images: dial tcp: lookup on :53: read udp :53: i/o timeout
Description
The DNS resolver configured on the host cannot resolve the registry’s hostname.
GitHub link
N/A
Workaround
Retry the operation, or if the error persists, use another DNS resolver. You can do this by updating your
/etc/resolv.conf
file with these or other DNS servers:
nameserver 8.8.8.8 nameserver 8.8.4.4