def run(args): image_name = args.image or utils.get_running_image_name() sql_file = args.sql_file status = utils.get_image_status(image_name) is_running = status["state"] == "running" running_containers = utils.noop( status) if is_running else utils.running_containers with running_containers(image_name, "db") as status: db_container = status["containers"]["db"] utils.logger.debug("DB container: {}".format(db_container)) psql_cmd = ["psql", "-U", "dhis", "dhis2"] cmd = [ "docker", "exec", ("-i" if sql_file else "-it"), db_container, *psql_cmd ] if sql_file: utils.logger.info("Run SQL file {} for image {}".format( sql_file, image_name)) result = utils.run(cmd, stdin=(open(sql_file) if sql_file else None), raise_on_error=False) if result.returncode != 0: utils.logger.error("Could not execute SQL") return 1
def run(args): data_image_name = args.image or utils.get_running_image_name() utils.logger.info("Push data image: {}".format(data_image_name)) utils.push_image(data_image_name) core_image_name = utils.get_core_image_name(data_image_name) utils.logger.info("Push core image: {}".format(core_image_name)) utils.push_image(core_image_name)
def run(args): image_name = args.image or utils.get_running_image_name() core = args.core_image result = utils.run_docker_compose(["config"], image_name, core_image=core, capture_output=True) yaml_contents = result.stdout.decode("utf-8") # Use regexp instead of using a third-party YAML parser to ease deployment on Windows. image_names = re.findall(r"image: (\S+)\r?$", yaml_contents, re.MULTILINE) utils.logger.info("Export images: {}".format(", ".join(image_names))) tar_file = args.output_file + ".tar" utils.save_images(image_names, tar_file) compress_tar(tar_file, args.output_file)
def run(args): image_name = args.image or utils.get_running_image_name() utils.logger.info("Push image: {}".format(image_name)) utils.push_image(image_name)
def run(args): image_name = args.image or utils.get_running_image_name() utils.logger.info("Show logs: {}".format(image_name)) args = ["logs", "-t", "-f" if args.follow else None, args.service] utils.run_docker_compose(filter(bool, args), image_name)
def run(args): image_name = args.image or utils.get_running_image_name() utils.logger.info("Stop container for image: {}".format(image_name)) utils.run_docker_compose(["stop"], image_name)
def run(args): image_name = args.image or utils.get_running_image_name() docker_dir = utils.get_docker_directory("data", args) utils.logger.info("Commit image: {}".format(image_name)) utils.build_image_from_source(docker_dir, image_name, image_name)