On Fri, 11/03 21:12, Fam Zheng wrote: > When a base image locally defined by QEMU, such as in the debian images, > is updated, the dockerfile checksum mechanism in docker.py still skips > updating the derived image, because it only looks at the literal content > of the dockerfile, without considering changes to the base image. > > For example we have a recent fix e58c1f9b35e81 that fixed > debian-win64-cross by updating its base image, debian8-mxe, but due to > above "feature" of docker.py the image in question is automatically NOT > rebuilt unless you add NOCACHE=1. It is noticed on Shippable: > > https://app.shippable.com/github/qemu/qemu/runs/541/2/console > > because after the fix is merged, the error still occurs, and the log > shows the container image is, as explained above, not updated. > > This is because at the time docker.py was written, there wasn't any > dependencies between QEMU's docker images. > > Now improve this to preprocess any "FROM qemu:*" directives in the > dockerfiles while doing checksum, and inline the base image's dockerfile > content, recursively. This ensures any changes on the depended _QEMU_ > images are taken into account. > > This means for external images that we expect to retrieve from docker > registries, we still do it as before. It is not perfect, because > registry images can get updated too. Technically we could substitute the > image name with its hex ID as obtained with $(docker images $IMAGE > --format="{{.Id}}"), but --format is not supported by RHEL 7, so leave > it for now. > > Reported-by: Philippe Mathieu-Daudé <f4...@amsat.org> > Signed-off-by: Fam Zheng <f...@redhat.com>
Queued, thanks. Fam