@@ -259,10 +259,22 @@ func (k *dockerBuildkitProvider) dockerBuild(
259
259
return nil , fmt .Errorf ("docker build failed: %w" , err )
260
260
}
261
261
262
- cmd = exec .Command ("docker" , "inspect " , name , "-f " , "{{index .RepoDigests 0 }}" )
263
- repoDigest , err := cmd .CombinedOutput ()
262
+ cmd = exec .Command ("docker" , "images " , "--format " , "{{.Digest }}" , name )
263
+ digestB , err := cmd .Output ()
264
264
if err != nil {
265
- return nil , fmt .Errorf ("docker inspect failed: %s: %s" , err , string (repoDigest ))
265
+ var output string
266
+ if err , ok := err .(* exec.ExitError ); ok {
267
+ output = string (err .Stderr )
268
+ }
269
+ return nil , fmt .Errorf ("docker images failed: %s: %s" , err , output )
270
+ }
271
+ digest := strings .TrimSpace (string (digestB ))
272
+ repoDigest := fmt .Sprintf ("%s@%s" , name , digest )
273
+
274
+ cmd = exec .Command ("docker" , "images" , "--format" , "present" , repoDigest )
275
+ output , err := cmd .CombinedOutput ()
276
+ if err != nil {
277
+ return nil , fmt .Errorf ("docker image %#v could not be retrieved: %v: %v" , repoDigest , err , string (output ))
266
278
}
267
279
268
280
outputs := map [string ]interface {}{
@@ -271,7 +283,8 @@ func (k *dockerBuildkitProvider) dockerBuild(
271
283
"name" : name ,
272
284
"platforms" : platforms ,
273
285
"contextDigest" : contextDigest ,
274
- "imageDigest" : strings .TrimSpace (string (repoDigest )),
286
+ "imageDigest" : repoDigest ,
287
+ "digest" : digest ,
275
288
"registryServer" : registry ["server" ].StringValue (),
276
289
}
277
290
return plugin .MarshalProperties (
0 commit comments