def METHOD_NAME(args):
    """Forms the docker command line and executes it. IF the push flag is
    provided also pushes it to DockerHub which requires PyNE admin right on
    DockerHub(Docker login is assumed...)
    Parameters
    ----------
    args : list of arguments
    """
    dockerfile = ["-f", "ubuntu_20.04-dev.dockerfile"]
    tag = build_name(args)
    tag_flag = ["-t", tag]
    docker_args = []
    if args.hdf5_version is not "":
        docker_args += ["--build-arg", "build_hdf5=" + args.hdf5_version]
    if args.moab:
        docker_args += ["--build-arg", "build_moab=YES"]
    if args.dagmc:
        docker_args += ["--build-arg", "build_dagmc=YES"]
    if args.pymoab:
        docker_args += ["--build-arg", "enable_pymoab=YES"]
    if args.openmc:
        docker_args += ["--build-arg", "install_openmc=YES"]
    if args.deps:
        docker_args += ["--build-arg", "build_pyne=NO"]
    if args.py_version:
        if args.py_version == 2:
            docker_args += ["--build-arg", "py_version=2.7"]
            if args.openmc:
                raise ValueError("OpenMC Python API does not support python2!")
        elif args.py_version == 3:
            docker_args += ["--build-arg", "py_version=3.6"]
        else:
            print("Can only deal with python 2 or 3")
            return
    rtn = subprocess.check_call(
        ["docker", "build"] + tag_flag + dockerfile + docker_args + ["."],
        shell=(os.name == "nt"),
    )
    if args.push:
        rtn = subprocess.check_call(["docker", "push", tag], shell=(os.name == "nt"))