docker镜像exec format error
比如k8s上的环境应该是linux/amd64,而本地macbook m1芯片支持的是linux/arm64,原因是调用镜像时,如果不去指定platform,他会默认根据当前系统去选择镜像打包,同时,如果需要多版本打docker镜像可以在docker build的时候去指定。所以当我在本地打的docker放到虚机上去跑时会出现上面的错误。记录下用m1 macbook打docker踩的坑。本地使用如
·
记录下用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 .
更多推荐
已为社区贡献1条内容
所有评论(0)