Closed JanakaSandaruwan closed 4 months ago
@JanakaSandaruwan thanks for reporting this. Do you have containerd storage enabled by chance? Before running extensions we download the run image and create a new "ephemeral" run image that has the lifecycle added as an additional layer. To grab the lifecycle layer we do a docker image save
on the lifecycle image (here), and are making some assumptions about the format of the saved image.tar that I fear are no longer valid if containerd storage is enabled. open /tmp/extend-run-image-scratch947184908/blobs/sha256.tar
is particularly suspicious, as sha256.tar
without an actual digest is a poorly formatted path. It is probably coming from here.
Edit: I see that you have Storage Driver: overlay2
in your docker info
output, so it's not containerd (though that is something we should fix). Still, something is amiss with how we are extracting the lifecycle layer...
Edit Edit: Seeing that you are on docker 25.x, the docker image save
output is using the new format (https://github.com/moby/moby/pull/44598) so that explains why the filename is the weird /tmp/extend-run-image-scratch947184908/blobs/sha256.tar
. I believe pack is failing to create the tar file because its name contains a parent dir that doesn't exist.
@JanakaSandaruwan could you try building your app using the latest lifecycle
image? add the flag --lifecycle-image buildpacksio/lifecycle:0.19.6
to your pack build
command.
@JanakaSandaruwan thanks for reporting this. actually, we managed to reproduce the error in our local environments when running the acceptance tests. We didn't notice before because the runner used for our acceptance tests is using Docker 24.0.9
Summary
We are using docker extensions in our builder. The run.Dockerfile as follows
However, building the app image using pack command failing with following error.
command -
pack build -B <builder> test_image -v
Error Output
Environment
pack info
docker info