-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build command doesn't work in some scenarios with containerd image store #1517
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
1 similar comment
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
I have a few questions:
|
The behavior of Docker on the build agents is that a digest will not show up in the
Nice. That's the cause of this. I disabled it and I no longer get that behavior. |
[Triage] We should look into if |
I looked into this. You can see the current storage driver used in our builds in CI thanks to our logging: https://dev.azure.com/dnceng/internal/_build/results?buildId=2602863&view=logs&j=fc59f0f2-c1bd-58ae-b870-833d1e8a924c&t=8d53baa0-ff68-5ea5-041a-af0e08303d7f&l=101
Notably, this depends on the host OS and not our ImageBuilder image. We should plan for this eventual transition and migrate away from using the presence of a digest for determining if an image was locally built or not. |
While attempting to fix #1516 I was trying to run my fix locally with the configuration that would verify it was working (i.e. image caching was enabled). It ended up not working correctly because some of the logic in Image Builder was not getting the expected results from the locally built image.
This logic expects that a locally built image will not have a digest associated with it from the
docker inspect
command:docker-tools/src/Microsoft.DotNet.ImageBuilder/src/IManifestService.cs
Lines 41 to 47 in 008a7cf
This turns out not to be the case for my version of Docker Desktop. In other words, the image does have a digest for the locally built image. This causes issues later on in that method because it will attempt to verify the digest reflects what is the registry (because it assumes it is not a locally built image at this point):
docker-tools/src/Microsoft.DotNet.ImageBuilder/src/IManifestService.cs
Lines 49 to 62 in 008a7cf
This then throws the exception because the digests don't match which makes sense.
So at some point, a new version of Docker (not sure if this is in the client or server) caused the digest to be created. You can see this in the build output:
This differs from the behavior of the version of Docker installed on the build agents. But this will become an issue whenever they get updated to whichever version this behavior was introduced.
For reference, here's my
docker info
output for my Docker Desktop installation:The text was updated successfully, but these errors were encountered: