Skip to content

Commit 3c45ce5

Browse files
committed
Try fixing empty layer issue seen in lifecycle
Signed-off-by: Jesse Brown <jabrown85@gmail.com>
1 parent cb0ffc2 commit 3c45ce5

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

remote/remote_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,11 @@ func testImage(t *testing.T, when spec.G, it spec.S) {
570570
h.AssertNil(t, err)
571571
h.AssertNil(t, image.Save())
572572
h.AssertEq(t, len(h.FetchManifestLayers(t, repoName)), 1)
573+
574+
// Pull the image via Docker to verify it works with containerd-snapshotter
575+
dockerClient := h.DockerCli(t)
576+
h.PullIfMissing(t, dockerClient, repoName)
577+
defer h.DockerRmi(dockerClient, repoName)
573578
})
574579
})
575580

remote/save.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ func (i *Image) Save(additionalNames ...string) error {
1616
}
1717

1818
var (
19-
emptyLayer = static.NewLayer([]byte{}, types.OCILayer)
19+
// An empty tar archive is two 512-byte zero blocks (EOF markers).
20+
// Zero-byte content is rejected by containerd-snapshotter.
21+
emptyLayer = static.NewLayer(make([]byte, 1024), types.OCILayer)
2022
emptyHistory = v1.History{Created: v1.Time{Time: imgutil.NormalizedDateTime}}
2123
)
2224

0 commit comments

Comments
 (0)