首页
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/