def cli_build_image(args): if args.plugin_files: args.plugin_files = [os.path.abspath(f) for f in args.plugin_files] if args.source__provider == 'json': with open(args.json_path) as json_fp: common_kwargs = json.load(json_fp) if args.substitute: process_substitutions(common_kwargs, args.substitute) else: common_kwargs = construct_kwargs(**vars(args)) response = BuildResults() if args.method == "hostdocker": response = build_image_using_hosts_docker(args.build_image, **common_kwargs) elif args.method == "privileged": response = build_image_in_privileged_container(args.build_image, **common_kwargs) elif args.method == 'here': build_result = build_image_here(plugin_files=args.plugin_files, **common_kwargs) if build_result.is_failed(): response.return_code = -1 else: response.return_code = 0 if response.return_code != 0: logger.error("build failed") sys.exit(response.return_code)
def cli_build_image(args): if args.plugin_files: args.plugin_files = [os.path.abspath(f) for f in args.plugin_files] if args.source__provider == 'json': with open(args.json_path) as json_fp: common_kwargs = json.load(json_fp) if args.substitute: process_substitutions(common_kwargs, args.substitute) else: common_kwargs = construct_kwargs(**vars(args)) response = BuildResults() if args.method == "hostdocker": response = build_image_using_hosts_docker(args.build_image, **common_kwargs) elif args.method == "privileged": response = build_image_in_privileged_container(args.build_image, **common_kwargs) elif args.method == 'here': build_result = build_image_here(plugin_files=args.plugin_files, **common_kwargs) if build_result.is_failed(): response.return_code = -1 else: response.return_code = 0 if response.return_code != 0: logger.error("build failed") sys.exit(response.return_code)
def _build(self, build_method): """ build image from provided build_args :return: BuildResults """ logger.info("building image '%s'", self.image) self.ensure_not_built() self.temp_dir = tempfile.mkdtemp() temp_path = os.path.join(self.temp_dir, BUILD_JSON) try: with open(temp_path, 'w') as build_json: json.dump(self.build_args, build_json) self.build_container_id = build_method(self.build_image, self.temp_dir) try: logs_gen = self.dt.logs(self.build_container_id, stream=True) wait_for_command(logs_gen) return_code = self.dt.wait(self.build_container_id) except KeyboardInterrupt: logger.info("killing build container on user's request") self.dt.remove_container(self.build_container_id, force=True) results = BuildResults() results.return_code = 1 return results else: results = self._load_results(self.build_container_id) results.return_code = return_code return results finally: shutil.rmtree(self.temp_dir)
def _build(self, build_method): """ build image from provided build_args :return: BuildResults """ logger.info("building image '%s'", self.image) self._ensure_not_built() self.temp_dir = tempfile.mkdtemp() temp_path = os.path.join(self.temp_dir, BUILD_JSON) try: with open(temp_path, 'w') as build_json: json.dump(self.build_args, build_json) self.build_container_id = build_method(self.build_image, self.temp_dir) try: logs_gen = self.dt.logs(self.build_container_id, stream=True) wait_for_command(logs_gen) return_code = self.dt.wait(self.build_container_id) except KeyboardInterrupt: logger.info("killing build container on user's request") self.dt.remove_container(self.build_container_id, force=True) results = BuildResults() results.return_code = 1 return results else: results = self._load_results(self.build_container_id) results.return_code = return_code return results finally: shutil.rmtree(self.temp_dir)