从ARM平台构建图像时,Docker Buildx不使用缓存

发布于 2025-02-10 04:21:27 字数 1545 浏览 0 评论 0原文

我正在我的x86_64使用docker buildx在我的上构建arm64图像,除非我尝试构建amm 图像开始从头开始构建它。

复制

  1. 创建Docker Builder 的步骤
     导出docker_cli_experimentiment = enabled
    docker buildx create -name buildkit
    docker buildx使用buildkit
    Docker Buildx Inspect -bootstrap
     
  2. 使用命令构建Docker映像
      docker buildx build。 - 平台Linux/ARM64 -T测试图像:P-ARM64 -F ./arm64.dockerfile
     

当我多次构建它时,所有步骤都在执行,每次构建都需要20-30分钟。我想通过缓存来最大程度地减少这次。

这就是我的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"]

任何建议是被录取的。

I am building arm64 image on my x86_64 amd machine using docker buildx everything is working fine except whenever I try to build arm image it start building it from scratch.

Steps to reproduce

  1. Create a docker builder
    export DOCKER_CLI_EXPERIMENTAL=enabled
    docker buildx create --name buildkit
    docker buildx use buildkit
    docker buildx inspect --bootstrap
    
  2. Build docker image using command
    docker buildx build . --platform linux/arm64 -t test-image:p-arm64 -f ./arm64.Dockerfile
    

When I build it multiple time all the steps are executing which takes around 20-30 min for every build. I want to minimize this time by caching.

This is what my dockerfile looks like

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"]

Any suggestion is appretiated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文