[英]Using the Python Docker API to get an Image hash from an AWS ECR
我一直在使用Docker Python API和Boto3來構建圖像並將它們推送到Amazon ECR。 我難以確定的是如何確定在ECR中是否已存在我構建的Image? 我可以像這樣使用Boto3庫:
import boto3
import botocore
client = boto3.client('ecr')
images = client.list_images(repositoryName=repo_name, registryId=repo_id)
這將給我一個摘要列表,但它們不是圖像摘要。 它們是Docker存儲庫摘要(它是圖像的摘要+其清單)。 因此,如果我在本地構建圖像,我無法使用它來檢查圖像是否已存在,並且Amazon ECR上有標記。
import docker
client = docker.from_env()
image = client.build(path=docker_dir)
sha256 = image[0].id # <--This Sha sum is for the image, different from repository
無論如何,無需拉動圖像,是否可以獲取給定存儲庫中圖像的實際圖像摘要?
我認為你可能做錯了,因為我使用的代碼與你的代碼非常相似,我正在獲取摘要。
session = boto3.Session(profile_name='default')
ecr = boto3.client('ecr')
docker_api = docker.APIClient()
print(session)
response = client.list_images(
repositoryName='repoparent/reponame',
maxResults=5,
filter={
'tagStatus': 'ANY'
}
)
print (response)
我對響應中的imagedigest包含了響應
Session(region_name='eu-central-1')
{'imageIds': [{'imageDigest': 'sha256:cbb5f28f7a8377207c8f95e3a9fae311fa12f81a22401e053d5c07fd0f87', 'imageTag': 'temp_e2e_1.0.13'}], 'nextToken': 'ukD72mdD/mC8b5xV3susmJzzaTgp3hKwR9nRUWa1yZZ4wYnPpldlCcKdX0uA+hWWOLo3ccyBGxIDoN9FQLPPEHv2DRd1OrIm4ooJdVM1M6sckRwXypd7HXj/SnA9iMm3YBl8HRpVXD/kVWB2VlNFS4aftrQQgtfrPNl6nb/S4zGFrQGQp23fdsY5TsKrWTLOWrdo8HGhWX2ylJ0Qoi19DAOBEN2/JAwMbk2hyquf5NDeA7omjHUMI1pfX5lpO2FPF39DKMZtzdwe24e8RcHa508aukf9CYW6gya6knjWbJfQSrb4lIP4HsTVBqDUuxg5IC9ghqLdXJNCEzWHzwQtuKg0vLdHmM6iftfrVhsgY6rKtZbcXwxlJb3a7FMMdm', 'ResponseMetadata': {'RequestId': 'fb33b587-795d-11e9-a32-17af1b3e4c54', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'fb33587-75d-11e9-a3342-17af1b3e4c54', 'content-type': 'application/x-amz-json-1.1', 'content-length': '532'}, 'RetryAttempts': 0}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.