整体上的流程按照官方给的本地部署流程进行:

https://github.com/GoogleCloudPlatform/microservices-demo/blob/main/docs/development-guide.md

环境:

archlinux+系统代理

skaffold run步骤

这一步的报错数量最多

1
2
emailservice: Error checking cache.
getting hash for artifact "emailservice": getting dependencies for "emailservice": parsing ONBUILD instructions: retrieving image "python:3.14.2-alpine@sha256:31da4cb527055e4e3d7e9e006dffe9329f84ebea79eaca0a1f1c27ce61e40ca5": Get "https://index.docker.io/v2/": dial tcp 202.160.128.16:443: i/o timeout

类似这样的问题,解决方法:手动拉取镜像 docker pull python:3.14.2-alpine

之后再构建,即可通过

1
2
3
 - emailservice: Not found. Building
- productcatalogservice: Error checking cache.
getting hash for artifact "productcatalogservice": getting dependencies for "productcatalogservice": parsing ONBUILD instructions: retrieving image "gcr.io/distroless/static": Get "https://gcr.io/v2/": dial tcp 173.194.174.82:443: i/o timeout

类似这样的问题,从grc.io拉取镜像出错

轩辕镜像

无敌了轩辕镜像,拿钱不办事

解决方法:

从daocloud拉取,再在dockerfile将gcr.io/distroless/static都更改成m.daocloud.io/gcr.io/distroless/static

  1. RUN go mod download出错,原因是容器不会继承shell的Go代理

解决方法:

编辑dockerfile文件,将RUN go mod download更改为:

1
RUN GOPROXY=https://goproxy.cn,direct go mod download
1
2
3
- deployment/redis-cart: container redis is waiting to start: redis:alpine can't be pulled
- pod/redis-cart-66669b5d5f-kmmng: container redis is waiting to start: redis:alpine can't be pulled
- deployment/redis-cart failed. Error: container redis is waiting to start: redis:alpine can't be pulled.

手动拉取镜像,并部署到kind即可

1
docker pull redis:alpine
1
docker save redis:alpine | docker exec -i kind-control-plane ctr -n k8s.io images import -

类似的问题还有这个,同样的拉取镜像并部署到kind就可以了

1
2
3
4
 - deployment/loadgenerator: container frontend-check is waiting to start: busybox:latest can't be pulled
- pod/loadgenerator-6b58b745b9-fn6hk: container frontend-check is waiting to start: busybox:latest can't be pulled
- deployment/loadgenerator failed. Error: container frontend-check is waiting to start: busybox:latest can't be pulled.
1/1 deployment(s) failed
1
docker pull busybox:latest
1
docker save busybox:latest | docker exec -i kind-control-plane ctr -n k8s.io images import -
1
ERROR:BuildKit is enabled but the buildx component is missing or broken

使用命令安装即可

1
sudo pacman -S docker-buildx

顺带一提,我在wsl上部署,开始三十分钟后开始在linux机器上部署,最后的结果是linux先配置好了,,,就很神奇

或许是buildx又或者是虚拟网卡模式的好处。。。很多问题都没遇到