Merge pull request #1919 from docker/1912-pull-sha-tag

Fix DockerClient pull bug when pulling image by digest
This commit is contained in:
Joffrey F 2018-02-20 15:01:13 -08:00 committed by GitHub
commit 759833c174
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -314,7 +314,9 @@ class ImageCollection(Collection):
self.client.api.pull(repository, tag=tag, **kwargs)
if tag:
return self.get('{0}:{1}'.format(repository, tag))
return self.get('{0}{2}{1}'.format(
repository, tag, '@' if tag.startswith('sha256:') else ':'
))
return self.list(repository)
def push(self, repository, tag=None, **kwargs):

View File

@ -74,6 +74,15 @@ class ImageCollectionTest(BaseIntegrationTest):
image = client.images.pull('alpine', tag='3.3')
assert 'alpine:3.3' in image.attrs['RepoTags']
def test_pull_with_sha(self):
image_ref = (
'hello-world@sha256:083de497cff944f969d8499ab94f07134c50bcf5e6b95'
'59b27182d3fa80ce3f7'
)
client = docker.from_env(version=TEST_API_VERSION)
image = client.images.pull(image_ref)
assert image_ref in image.attrs['RepoDigests']
def test_pull_multiple(self):
client = docker.from_env(version=TEST_API_VERSION)
images = client.images.pull('hello-world')