mac 下 docker build 每次都要从线上下载base镜像
问题
本地开发环境安装麻烦,于是使用docker镜像配置python的运行环境,直接从服务器下载了个镜像,竟然直接运行起来了。(M1的mac系统,以为x86的镜像无法运行呢)
后续修改了一些依赖库,想要更新下镜像,于是写了个docker file:
FROM dev-base:latest
COPY pip/ /opt/pip
RUN pip install /opt/pip/*
RUN rm -rf /opt/pip/
可是每次build都要从远程服务器下载镜像,不适用本地的镜像
...
=> ERROR [internal] load metadata for docker.io/kolla/dev-base:latest
...
解决
主要原因就是因为在mac m1下,默认的镜像 platform 是arm64,而base镜像是adm64的,所以导致认为镜像不存在,需要从线上拉取。
所以,在FROM上加上平台信息就好了
FROM --platform=linux/amd64 dev-base
COPY pip/ /opt/pip
RUN pip install /opt/pip/*
RUN rm -rf /opt/pip/