记录下用m1 macbook打docker踩的坑

本地使用如下镜像打的docker

FROM python:3.8-slim-buster

推送到k8s上执行时,直接报错:

exec /usr/local/bin/python3: exec format error

原因是调用镜像时,如果不去指定platform,他会默认根据当前系统去选择镜像打包,
比如k8s上的环境应该是linux/amd64,而本地macbook m1芯片支持的是linux/arm64,
所以当我在本地打的docker放到虚机上去跑时会出现上面的错误。

这里的解决方案时先去查询虚拟机需要什么样的platform镜像去支持,然后修改dockerfile:

FROM --platform=linux/amd64 python:3.10-slim-buster AS build

同时,如果需要多版本打docker镜像可以在docker build的时候去指定

docker buildx build --platform linux/amd64,linux/arm64 --tag your-repo/your-image-name --push .

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐