@@ -208,20 +208,35 @@ func createLayerMapping(cache *registry.ImageCache) (*types.LayerMapping, error)
208
208
OrdinalByDiffId : make (map [string ]int , 0 ),
209
209
}
210
210
211
- diffIds := cache .Source .Image .Metadata .Config .RootFS .DiffIDs
212
- layers := cache .Source .Metadata .ImageMetadata .Layers
211
+ rawManifest := cache .Source .Image .Metadata .RawManifest
212
+ rawConfig := cache .Source .Image .Metadata .RawConfig
213
+
214
+ var manifest v1.Manifest
215
+ err := json .Unmarshal (rawManifest , & manifest )
216
+ if err != nil {
217
+ return nil , errors .Wrap (err , "failed to unmarshal manifest" )
218
+ }
219
+
220
+ var config v1.ConfigFile
221
+ err = json .Unmarshal (rawConfig , & config )
222
+ if err != nil {
223
+ return nil , errors .Wrap (err , "failed to unmarshal config" )
224
+ }
225
+
226
+ layers := manifest .Layers
227
+ diffIds := config .RootFS .DiffIDs
213
228
214
229
li := 0
215
230
for i , l := range cache .Source .Image .Metadata .Config .History {
216
231
if ! l .EmptyLayer {
217
232
layer := layers [li ]
218
233
diffId := diffIds [li ]
219
234
220
- lm .ByDiffId [diffId .String ()] = layer .Digest
221
- lm .ByDigest [layer .Digest ] = diffId .String ()
235
+ lm .ByDiffId [diffId .String ()] = layer .Digest . String ()
236
+ lm .ByDigest [layer .Digest . String () ] = diffId .String ()
222
237
lm .OrdinalByDiffId [diffId .String ()] = i
223
238
lm .DiffIdByOrdinal [i ] = diffId .String ()
224
- lm .DigestByOrdinal [i ] = layer .Digest
239
+ lm .DigestByOrdinal [i ] = layer .Digest . String ()
225
240
li ++
226
241
}
227
242
}
0 commit comments