package cn.reghao.autodop.common.docker.api;

import cn.reghao.autodop.common.docker.exception.DockerException;

/**
 * docker 镜像操作接口
 *
 * @author reghao
 * @date 2019-12-10 17:48:08
 */
public interface ImageOps {
    /**
     * 构建 Docker 镜像
     *
     * @param image repository:tag 格式的字符串
     * @param compileHome Dockerfile 所在目录的绝对路径
     * @param dockerfile Dockerfile 文件(可选)
     *
     * @date 2019-12-10 下午6:08
     */
    void build(String image, String compileHome, String dockerfile) throws Exception;

    void push(String image) throws DockerException, InterruptedException;
    void pull(String image) throws DockerException;
    void rmImage(String image) throws DockerException;

    /**
     * 获取 image 的详细信息
     *
     * @param image repository:tag 格式的字符串或 image id
     * @return 镜像详细信息
     * @date 2020-01-15 下午9:24
     */
    String inspectImage(String image) throws DockerException;
}
