in ftl/common/builder.py [0:0]
def __init__(self, ctx, cache_namespace, args, descriptor_files):
super(RuntimeBase, self).__init__(ctx)
self._cache_namespace = cache_namespace
if args.entrypoint:
args.entrypoint = args.entrypoint.split(" ")
if args.sh_c_prefix:
args.entrypoint = ['bash', '-c', " ".join(args.entrypoint)]
if args.exposed_ports:
args.exposed_ports = args.exposed_ports.split(",")
args.cache_key_version = "%s %s" % (args.cache_key_version,
args.cache_salt)
self._args = args
self._base_name = docker_name.Tag(self._args.base, strict=False)
self._base_creds = docker_creds.DefaultKeychain.Resolve(
self._base_name)
self._target_image = docker_name.Tag(self._args.name, strict=False)
self._target_creds = docker_creds.DefaultKeychain.Resolve(
self._target_image)
self._transport = transport_pool.Http(
httplib2.Http, size=constants.THREADS)
if args.tar_base_image_path:
self._base_image = docker_image.FromTarball(
args.tar_base_image_path)
else:
self._base_image = docker_image.FromRegistry(
self._base_name, self._base_creds, self._transport)
self._base_image.__enter__()
cache_repo = args.cache_repository
if not cache_repo:
cache_repo = self._target_image.as_repository()
if args.ttl:
ttl = args.ttl
else:
ttl = ftl_util.get_ttl(descriptor_files, ctx)
self._cache = cache.Registry(
repo=cache_repo,
namespace=self._cache_namespace,
creds=self._target_creds,
transport=self._transport,
ttl=ttl,
threads=constants.THREADS,
mount=[self._base_name],
use_global=args.global_cache,
export_stats=args.export_cache_stats,
export_location=args.builder_output_path,
should_cache=args.cache,
should_upload=args.upload)
self._descriptor_files = descriptor_files