mirror of
https://github.com/clearlinux/docker.git
synced 2026-09-06 05:31:47 +00:00
Make sure tags and digests don’t collide
Tags and digests are kept in the same storage. We want to make sure that they are completely separated - tags are something users set and digests can only be set by pull-by-digest code path. Reverts #14664 Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
@@ -152,3 +152,22 @@ func (s *DockerSuite) TestTagOfficialNames(c *check.C) {
|
||||
deleteImages("fooo/bar:latest")
|
||||
}
|
||||
}
|
||||
|
||||
// ensure tags can not match digests
|
||||
func (s *DockerSuite) TestTagMatchesDigest(c *check.C) {
|
||||
testRequires(c, DaemonIsLinux)
|
||||
if err := pullImageIfNotExist("busybox:latest"); err != nil {
|
||||
c.Fatal("couldn't find the busybox:latest image locally and failed to pull it")
|
||||
}
|
||||
digest := "busybox@sha256:abcdef76720241213f5303bda7704ec4c2ef75613173910a56fb1b6e20251507"
|
||||
// test setting tag fails
|
||||
_, _, err := dockerCmdWithError("tag", "-f", "busybox:latest", digest)
|
||||
if err == nil {
|
||||
c.Fatal("digest tag a name should have failed")
|
||||
}
|
||||
// check that no new image matches the digest
|
||||
_, _, err = dockerCmdWithError("inspect", digest)
|
||||
if err == nil {
|
||||
c.Fatal("inspecting by digest should have failed")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user