从ARM平台构建图像时,Docker Buildx不使用缓存
我正在我的x86_64
使用docker buildx
在我的上构建
arm64
图像,除非我尝试构建amm 图像开始从头开始构建它。
复制
- 创建Docker Builder 的步骤
导出docker_cli_experimentiment = enabled docker buildx create -name buildkit docker buildx使用buildkit Docker Buildx Inspect -bootstrap
- 使用命令构建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
- Create a docker builder
export DOCKER_CLI_EXPERIMENTAL=enabled docker buildx create --name buildkit docker buildx use buildkit docker buildx inspect --bootstrap
- 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论