standard_init_linux.go:219: exec 用户进程导致:exec 格式错误 ECR + Quarkus
standard_init_linux.go:219: exec user process caused: exec format error ECR + Quarkus
好的,我已经知道 SO 上有很多错误,但是我找不到适合我的情况。
前提:
我的环境是 MacOS 和 M1。
我有一个 EKS 集群 linux (amd64) 作为 AWS 上的 OS 架构。
尝试使用 Quarkus 构建和部署我的微服务时,我设置为 application.properties:
quarkus.container-image.image=<my ECR repository>
quarkus.container-image.build=true
quarkus.container-image.push=true
quarkus.jib.platforms=linux/amd64
我正在使用 jib 扩展来构建图像。
在我的 ECR aws 注册表上成功部署映像后,我启动:
kubectl apply -f target/kubernetes/kubernetes.yaml
然后
kubectl get po
明白了
NAME READY STATUS RESTARTS AGE
kube-cm-example-6ffd58655-rzzqh 0/1 CrashLoopBackOff 8 16m
然后
kubectl logs kube-cm-example-6ffd58655-rzzqh
return下面输出
standard_init_linux.go:219: exec user process caused: exec format error
我在许多来源上读到这是一个平台图像问题,但是我使用 jib 设置了 linux/amd64,它与节点的拱门相同。
我还尝试手动构建一个 docker 镜像指定平台=linux/amd64 然后部署到 ECR,但没有任何变化。
根据观察,可能是您的 Kubernetes 集群在启动 pod 时没有从 ECR 中拉取最新更新的镜像。除非满足某些条件,否则 k8s 的默认拉取策略会跳过已存在的镜像。在开发过程中,您可以考虑让它始终拉取图像。看看这个.
好的,我已经知道 SO 上有很多错误,但是我找不到适合我的情况。
前提:
我的环境是 MacOS 和 M1。
我有一个 EKS 集群 linux (amd64) 作为 AWS 上的 OS 架构。
尝试使用 Quarkus 构建和部署我的微服务时,我设置为 application.properties:
quarkus.container-image.image=<my ECR repository>
quarkus.container-image.build=true
quarkus.container-image.push=true
quarkus.jib.platforms=linux/amd64
我正在使用 jib 扩展来构建图像。
在我的 ECR aws 注册表上成功部署映像后,我启动:
kubectl apply -f target/kubernetes/kubernetes.yaml
然后
kubectl get po
明白了
NAME READY STATUS RESTARTS AGE
kube-cm-example-6ffd58655-rzzqh 0/1 CrashLoopBackOff 8 16m
然后
kubectl logs kube-cm-example-6ffd58655-rzzqh
return下面输出
standard_init_linux.go:219: exec user process caused: exec format error
我在许多来源上读到这是一个平台图像问题,但是我使用 jib 设置了 linux/amd64,它与节点的拱门相同。
我还尝试手动构建一个 docker 镜像指定平台=linux/amd64 然后部署到 ECR,但没有任何变化。
根据观察,可能是您的 Kubernetes 集群在启动 pod 时没有从 ECR 中拉取最新更新的镜像。除非满足某些条件,否则 k8s 的默认拉取策略会跳过已存在的镜像。在开发过程中,您可以考虑让它始终拉取图像。看看这个