def register_backend(
    backend: str,
    *,
    buildkit_support: bool,
    health: t.Callable[[], bool],
    construct_build_args: t.Callable[P, Arguments],
    binary: str | None = None,
    build_cmd: t.Sequence[str] | None = None,
    env: dict[str, str] | None = None,
):
    """
    Register a custom backend, provided with a build and health check implementation.

    Args:
        backend: Name of the backend.
        buildkit_support: Whether the backend has support for BuildKit.
        health: Health check implementation. This is a callable that takes no
                argument and returns a boolean.
        construct_build_args: This is a callable that takes possible backend keyword arguments
                              and returns a list of command line arguments.
        env: Default environment variables dict for this OCI builder implementation.
        binary: Optional binary path. If not provided, the binary will use the backend name.
                Make sure that the binary is on your ``PATH``.
        build_cmd: Optional build command. If not provided, the command will be 'build'.

    Examples:

    .. code-block:: python

        from bentoml.container import register_backend

        register_backend(
            "lima",
            binary=shutil.which("limactl"),
            buildkit_support=True,
            health=buildx_health,
            construct_build_args=buildx_build_args,
            env={"DOCKER_BUILDKIT": "1"},
        )
    """
    if backend in BUILDER_REGISTRY:
        raise ValueError(f"Backend {backend} already registered.")
    if binary is None:
        binary = backend
    try:
        BUILDER_REGISTRY[backend] = OCIBuilder.create(
            binary,
            env=env,
            build_cmd=build_cmd,
            enable_buildkit=buildkit_support,
            construct_build_args=construct_build_args,
            health=health,
        )
    except Exception as e:  # pylint: disable=broad-except
        logger.error(
            "Failed to register backend %s: %s", backend, e, exc_info=sys.exc_info()
        )
        raise e from None
Register a custom backend, provided with a build and health check implementation.

Args:
backend: Name of the backend.
buildkit_support: Whether the backend has support for BuildKit.
health: Health check implementation. This is a callable that takes no
argument and returns a boolean.
construct_build_args: This is a callable that takes possible backend keyword arguments
and returns a list of command line arguments.
env: Default environment variables dict for this OCI builder implementation.
binary: Optional binary path. If not provided, the binary will use the backend name.
Make sure that the binary is on your ``PATH``.
build_cmd: Optional build command. If not provided, the command will be 'build'.

Examples:

.. code-block:: python

from bentoml.container import register_backend

register_backend(
"lima",
binary=shutil.which("limactl"),
buildkit_support=True,
health=buildx_health,
construct_build_args=buildx_build_args,
env={"DOCKER_BUILDKIT": "1"},
)
src/bentoml/_internal/container/__init__.py