Beispiel #1
0
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)
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #7
0
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)