本文整理汇总了Python中atomic_reactor.core.DockerTasker.get_image_info_by_image_name方法的典型用法代码示例。如果您正苦于以下问题:Python DockerTasker.get_image_info_by_image_name方法的具体用法?Python DockerTasker.get_image_info_by_image_name怎么用?Python DockerTasker.get_image_info_by_image_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类atomic_reactor.core.DockerTasker
的用法示例。
在下文中一共展示了DockerTasker.get_image_info_by_image_name方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_get_image_info_by_name_tag_in_name_nonexisten
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
def test_get_image_info_by_name_tag_in_name_nonexisten(temp_image_name):
if MOCK:
mock_docker()
t = DockerTasker()
response = t.get_image_info_by_image_name(temp_image_name)
assert len(response) == 0
示例2: test_get_image_info_by_name_tag_in_name
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
def test_get_image_info_by_name_tag_in_name():
if MOCK:
mock_docker()
t = DockerTasker()
response = t.get_image_info_by_image_name(input_image_name)
assert len(response) == 1
示例3: test_get_image_info_by_name_tag_in_name_library
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
def test_get_image_info_by_name_tag_in_name_library():
if MOCK:
mock_docker()
t = DockerTasker()
image_name = ImageName.parse("library/busybox")
response = t.get_image_info_by_image_name(image_name)
assert len(response) == 1
示例4: test_get_image_info_by_id
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
def test_get_image_info_by_id():
if MOCK:
mock_docker(provided_image_repotags=input_image_name.to_str())
t = DockerTasker()
image_id = t.get_image_info_by_image_name(input_image_name)[0]['Id']
response = t.get_image_info_by_image_id(image_id)
assert isinstance(response, dict)
示例5: InsideBuilder
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
#.........这里部分代码省略.........
self.df_dir,
self.image,
)
logger.debug("build is submitted, waiting for it to finish")
command_result = wait_for_command(logs_gen) # wait for build to finish
logger.info("build was %ssuccesful!", 'un' if command_result.is_failed() else '')
self.is_built = True
if not command_result.is_failed():
self.built_image_info = self.get_built_image_info()
# self.base_image_id = self.built_image_info['ParentId'] # parent id is not base image!
self.image_id = self.built_image_info['Id']
build_result = BuildResult(command_result, self.image_id)
return build_result
def push_built_image(self, registry, insecure=False):
"""
push built image to provided registry
:param registry: str
:param insecure: bool, allow connecting to registry over plain http
:return: str, image
"""
logger.info("pushing built image '%s' to registry '%s'", self.image, registry)
self._ensure_is_built()
if not registry:
logger.warning("no registry specified; skipping")
return
if self.image.registry and self.image.registry != registry:
logger.error("registry in image name doesn't match provided target registry, "
"image registry = '%s', target = '%s'",
self.image.registry, registry)
raise RuntimeError(
"Registry in image name doesn't match target registry. Image: '%s', Target: '%s'"
% (self.image.registry, registry))
target_image = self.image.copy()
target_image.registry = registry
response = self.tasker.tag_and_push_image(self.image, target_image, insecure=insecure)
self.tasker.remove_image(target_image)
return response
def inspect_base_image(self):
"""
inspect base image
:return: dict
"""
logger.info("inspecting base image '%s'", self.base_image)
inspect_data = self.tasker.inspect_image(self.base_image)
return inspect_data
def inspect_built_image(self):
"""
inspect built image
:return: dict
"""
logger.info("inspecting built image '%s'", self.image_id)
self._ensure_is_built()
inspect_data = self.tasker.inspect_image(self.image_id) # dict with lots of data, see man docker-inspect
return inspect_data
def get_base_image_info(self):
"""
query docker about base image
:return dict
"""
logger.info("getting information about base image '%s'", self.base_image)
image_info = self.tasker.get_image_info_by_image_name(self.base_image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.base_image)
raise RuntimeError("image '%s' not found", self.base_image)
else:
logger.error("multiple (%d) images found for image '%s'", items_count, self.base_image)
raise RuntimeError("multiple (%d) images found for image '%s'" % (items_count, self.base_image))
def get_built_image_info(self):
"""
query docker about built image
:return dict
"""
logger.info("getting information about built image '%s'", self.image)
self._ensure_is_built()
image_info = self.tasker.get_image_info_by_image_name(self.image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.image)
raise RuntimeError("image '%s' not found" % self.image)
else:
logger.error("multiple (%d) images found for image '%s'", items_count, self.image)
raise RuntimeError("multiple (%d) images found for image '%s'" % (items_count, self.image))
示例6: InsideBuilder
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
class InsideBuilder(LastLogger, BuilderStateMachine):
"""
This is expected to run within container
"""
def __init__(self, source, image, **kwargs):
"""
"""
LastLogger.__init__(self)
BuilderStateMachine.__init__(self)
print_version_of_tools()
self.tasker = DockerTasker()
info, version = self.tasker.get_info(), self.tasker.get_version()
logger.debug(json.dumps(info, indent=2))
logger.info(json.dumps(version, indent=2))
# arguments for build
self.source = source
self.base_image_id = None
self.image_id = None
self.built_image_info = None
self.image = ImageName.parse(image)
# get info about base image from dockerfile
self.df_path, self.df_dir = self.source.get_dockerfile_path()
self.set_base_image(df_parser(self.df_path).baseimage)
logger.debug("base image specified in dockerfile = '%s'", self.base_image)
if not self.base_image.tag:
self.base_image.tag = 'latest'
def build(self):
"""
build image inside current environment;
it's expected this may run within (privileged) docker container
:return: image string (e.g. fedora-python:34)
"""
try:
logger.info("building image '%s' inside current environment", self.image)
self._ensure_not_built()
logger.debug("using dockerfile:\n%s", df_parser(self.df_path).content)
logs_gen = self.tasker.build_image_from_path(
self.df_dir,
self.image,
)
logger.debug("build is submitted, waiting for it to finish")
command_result = wait_for_command(logs_gen) # wait for build to finish
logger.info("build was %ssuccessful!", 'un' if command_result.is_failed() else '')
self.is_built = True
if not command_result.is_failed():
self.built_image_info = self.get_built_image_info()
# self.base_image_id = self.built_image_info['ParentId'] # parent id is not base image!
self.image_id = self.built_image_info['Id']
build_result = BuildResult(command_result, self.image_id)
return build_result
except:
logger.exception("build failed")
return ExceptionBuildResult()
def set_base_image(self, base_image):
self.base_image = ImageName.parse(base_image)
def inspect_base_image(self):
"""
inspect base image
:return: dict
"""
logger.info("inspecting base image '%s'", self.base_image)
inspect_data = self.tasker.inspect_image(self.base_image)
return inspect_data
def inspect_built_image(self):
"""
inspect built image
:return: dict
"""
logger.info("inspecting built image '%s'", self.image_id)
self._ensure_is_built()
inspect_data = self.tasker.inspect_image(self.image_id) # dict with lots of data, see man docker-inspect
return inspect_data
def get_base_image_info(self):
"""
query docker about base image
:return dict
"""
logger.info("getting information about base image '%s'", self.base_image)
image_info = self.tasker.get_image_info_by_image_name(self.base_image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.base_image)
raise RuntimeError("image '%s' not found", self.base_image)
#.........这里部分代码省略.........
示例7: InsideBuilder
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
#.........这里部分代码省略.........
except docker.errors.NotFound:
# If the base image cannot be found throw KeyError -
# as this property should behave like a dict
raise KeyError("Unprocessed base image Dockerfile cannot be inspected")
else:
self._base_image_inspect =\
atomic_reactor.util.get_inspect_for_image(self.base_image,
self.base_image.registry,
self.base_image_insecure,
self.base_image_dockercfg_path)
base_image_str = str(self.base_image)
if base_image_str not in self._parent_images_inspect:
self._parent_images_inspect[base_image_str] = self._base_image_inspect
return self._base_image_inspect
def parent_image_inspect(self, image):
"""
inspect parent image
:return: dict
"""
image_name = ImageName.parse(image)
if image_name not in self._parent_images_inspect:
if self.parents_pulled:
self._parent_images_inspect[image_name] = self.tasker.inspect_image(image)
else:
self._parent_images_inspect[image_name] =\
atomic_reactor.util.get_inspect_for_image(image_name,
image_name.registry,
self.base_image_insecure,
self.base_image_dockercfg_path)
return self._parent_images_inspect[image_name]
def inspect_built_image(self):
"""
inspect built image
:return: dict
"""
logger.info("inspecting built image '%s'", self.image_id)
self.ensure_is_built()
# dict with lots of data, see man docker-inspect
inspect_data = self.tasker.inspect_image(self.image_id)
return inspect_data
def get_base_image_info(self):
"""
query docker about base image
:return dict
"""
if self.base_from_scratch:
return
logger.info("getting information about base image '%s'", self.base_image)
image_info = self.tasker.get_image_info_by_image_name(self.base_image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.base_image)
raise RuntimeError("image '%s' not found" % self.base_image)
else:
logger.error("multiple (%d) images found for image '%s'", items_count,
self.base_image)
raise RuntimeError("multiple (%d) images found for image '%s'" % (items_count,
self.base_image))
def get_built_image_info(self):
"""
query docker about built image
:return dict
"""
logger.info("getting information about built image '%s'", self.image)
image_info = self.tasker.get_image_info_by_image_name(self.image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.image)
raise RuntimeError("image '%s' not found" % self.image)
else:
logger.error("multiple (%d) images found for image '%s'", items_count, self.image)
raise RuntimeError("multiple (%d) images found for image '%s'" % (items_count,
self.image))
def parent_images_to_str(self):
results = {}
for base_image_name, parent_image_name in self.parent_images.items():
base_str = str(base_image_name)
parent_str = str(parent_image_name)
if base_image_name and parent_image_name:
results[base_str] = parent_str
else:
logger.debug("None in: base {} has parent {}".format(base_str, parent_str))
return results
示例8: InsideBuilder
# 需要导入模块: from atomic_reactor.core import DockerTasker [as 别名]
# 或者: from atomic_reactor.core.DockerTasker import get_image_info_by_image_name [as 别名]
class InsideBuilder(LastLogger, BuilderStateMachine):
"""
This is expected to run within container
"""
def __init__(self, source, image, **kwargs):
"""
"""
LastLogger.__init__(self)
BuilderStateMachine.__init__(self)
print_version_of_tools()
self.tasker = DockerTasker()
info, version = self.tasker.get_info(), self.tasker.get_version()
logger.debug(json.dumps(info, indent=2))
logger.info(json.dumps(version, indent=2))
# arguments for build
self.source = source
self.base_image = None
self.image_id = None
self.built_image_info = None
self.image = ImageName.parse(image)
# get info about base image from dockerfile
build_file_path, build_file_dir = self.source.get_build_file_path()
self.df_dir = build_file_dir
self._df_path = None
# If the build file isn't a Dockerfile, but say, a flatpak.json then a
# plugin needs to create the Dockerfile and set the base image
if build_file_path.endswith(DOCKERFILE_FILENAME):
self.set_df_path(build_file_path)
@property
def df_path(self):
if self._df_path is None:
raise AttributeError("Dockerfile has not yet been generated")
return self._df_path
def set_df_path(self, path):
self._df_path = path
self.set_base_image(df_parser(path).baseimage)
logger.debug("base image specified in dockerfile = '%s'", self.base_image)
if not self.base_image.tag:
self.base_image.tag = 'latest'
def set_base_image(self, base_image):
self.base_image = ImageName.parse(base_image)
def inspect_base_image(self):
"""
inspect base image
:return: dict
"""
logger.info("inspecting base image '%s'", self.base_image)
inspect_data = self.tasker.inspect_image(self.base_image)
return inspect_data
def inspect_built_image(self):
"""
inspect built image
:return: dict
"""
logger.info("inspecting built image '%s'", self.image_id)
self.ensure_is_built()
# dict with lots of data, see man docker-inspect
inspect_data = self.tasker.inspect_image(self.image_id)
return inspect_data
def get_base_image_info(self):
"""
query docker about base image
:return dict
"""
logger.info("getting information about base image '%s'", self.base_image)
image_info = self.tasker.get_image_info_by_image_name(self.base_image)
items_count = len(image_info)
if items_count == 1:
return image_info[0]
elif items_count <= 0:
logger.error("image '%s' not found", self.base_image)
raise RuntimeError("image '%s' not found", self.base_image)
else:
logger.error("multiple (%d) images found for image '%s'", items_count,
self.base_image)
raise RuntimeError("multiple (%d) images found for image '%s'" % (items_count,
self.base_image))
def get_built_image_info(self):
"""
query docker about built image
#.........这里部分代码省略.........