从arm平台构建镜像时,Docker buildx不使用缓存

Pra*_*shi 5 linux docker buildx

我正在我的amd 机器arm64上构建图像,一切工作正常,除了每当我尝试构建图像时,它都会从头开始构建它。x86_64docker buildxarm

重现步骤

  1. 创建一个 docker 构建器
    export DOCKER_CLI_EXPERIMENTAL=enabled
    docker buildx create --name buildkit
    docker buildx use buildkit
    docker buildx inspect --bootstrap
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用命令构建docker镜像
    docker buildx build . --platform linux/arm64 -t test-image:p-arm64 -f ./arm64.Dockerfile
    
    Run Code Online (Sandbox Code Playgroud)

当我多次构建它时,每次构建都会执行所有步骤20-30 min。我想通过缓存来最小化这个时间。

这就是我的 dockerfile 的样子

FROM python:3.7-slim

USER root

RUN apt-get update && \
    apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common \
    gnupg \
    g++ \
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://download.docker.com/linux/debian/gpg |  gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
    echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
    $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

RUN apt-get update && \
    apt-get install -y docker-ce-cli \
    && rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --no-cache-dir \
    ruamel.yaml==0.16.12 \
    pyyaml==5.4.1 \
    requests==2.27.1

RUN apt-get remove -y g++ && apt-get purge g++

ENTRYPOINT ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)

任何建议表示赞赏。