Version information:
- OS: Ubuntu 20.04.2 LTS, x86_64
- Docker Server: 20.10.7
- Docker Client: 20.10.7
- docker buildx version: v0.5.1-docker
- BuildKit: moby/buildkit:v0.9.0
Steps to reproduce
Create Dockerfile:
FROM busybox AS stage-1
RUN echo "Hello, world!!!"
COPY changed.txt /opt/changed.txt
FROM busybox
COPY --from=stage-1 /opt/changed.txt /opt/changed.txt
Run script like (REGISTRY shoud be replaced by actual value):
#!/bin/bash
# Recreate builder for clear local cache
docker buildx rm cachebug || true
docker buildx create --name cachebug --driver docker-container
docker buildx inspect cachebug --bootstrap
# Create some changed file
date > changed.txt
# Run
REGISTRY=registry.example.net/test-docker/example
docker buildx build \
--builder cachebug \
--push \
--tag $REGISTRY:latest \
--cache-from type=registry,ref=$REGISTRY:buildcache \
--cache-to type=registry,ref=$REGISTRY:buildcache,mode=max \
--platform linux/amd64 \
--platform linux/arm64 \
.
What I see: When I run the above script multiple times, step RUN echo "Hello, world!!!" fails cache roundly every second time for one of platform (I have not seen the problem with the cache at the same time on all platforms).
For example:
=> CACHED [linux/arm64 stage-1 2/3] RUN echo "Hello, world!!!" 0.3s
=> => sha256:e2f4ee50b555089a69b84af6621283565af19e3bcf0596b36ba5feec7b96d1d7 116B / 116B 0.2s
=> => sha256:38cc3b49dbab817c9404b9a301d1f673d4b0c2e3497dbcfbea2be77516679682 820.69kB / 820.69kB 0.6s
=> => extracting sha256:38cc3b49dbab817c9404b9a301d1f673d4b0c2e3497dbcfbea2be77516679682 0.1s
=> => extracting sha256:e2f4ee50b555089a69b84af6621283565af19e3bcf0596b36ba5feec7b96d1d7 0.1s
=> [linux/amd64 stage-1 2/3] RUN echo "Hello, world!!!" 0.3s
=> [linux/amd64 stage-1 3/3] COPY changed.txt /opt/changed.txt 0.2s
=> [linux/arm64 stage-1 3/3] COPY changed.txt /opt/changed.txt 0.2s
Update (2021-08-18)
Repository to reproduce issue: https://github.com/bozaro/buildkit-2279 (simply checkout and run ./test.sh).
Version information:
Steps to reproduce
Create
Dockerfile:Run script like (REGISTRY shoud be replaced by actual value):
What I see: When I run the above script multiple times, step
RUN echo "Hello, world!!!"fails cache roundly every second time for one of platform (I have not seen the problem with the cache at the same time on all platforms).For example:
Update (2021-08-18)
Repository to reproduce issue: https://github.com/bozaro/buildkit-2279 (simply checkout and run
./test.sh).