This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-1-test by this push:
     new be8f81d2d1a [v3-1-test] feat: add warning for missing podman support 
in breeze (#58599) (#58602)
be8f81d2d1a is described below

commit be8f81d2d1a2ddf738d12f9c69d27cac11d1c2d7
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Nov 23 22:35:22 2025 +0100

    [v3-1-test] feat: add warning for missing podman support in breeze (#58599) 
(#58602)
    
    * added check for podman engine in breeze
    
    * detect podman engine or podman in the docker version command
    (cherry picked from commit 9e3abcefaacf768e3ee99f9969bb6fb9a2ca2b97)
    
    Co-authored-by: Aaron Wolmutt 
<[email protected]>
---
 .../airflow_breeze/commands/developer_commands.py  |  1 +
 .../airflow_breeze/utils/docker_command_utils.py   | 31 ++++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/dev/breeze/src/airflow_breeze/commands/developer_commands.py 
b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
index d248f95e6f2..20ca6e9b17f 100644
--- a/dev/breeze/src/airflow_breeze/commands/developer_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
@@ -489,6 +489,7 @@ def shell(
         verbose_commands=verbose_commands,
         warn_image_upgrade_needed=warn_image_upgrade_needed,
     )
+    perform_environment_checks()
     rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
     result = enter_shell(shell_params=shell_params)
     fix_ownership_using_docker()
diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py 
b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
index 0ec66aa9abf..4c402f5a7d6 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -230,6 +230,36 @@ You can find installation instructions here: 
https://docs.docker.com/engine/inst
                 sys.exit(1)
 
 
+def check_container_engine(quiet: bool = False):
+    """Checks if the container engine is Docker or podman."""
+    response = run_command(
+        ["docker", "version"],
+        no_output_dump_on_exception=True,
+        capture_output=True,
+        text=True,
+        check=False,
+        dry_run_override=False,
+    )
+    if response.returncode != 0:
+        get_console().print(
+            "[error]Could not determine the container engine.[/]\n"
+            "[warning]Please ensure that Docker is installed and running.[/]"
+        )
+        sys.exit(1)
+    run_command_output = "\n".join(
+        " ".join(line.split()) for line in 
response.stdout.strip().lower().splitlines()
+    )
+    podman_engine_enabled = any(
+        "client: podman engine" in line or "podman" in line for line in 
run_command_output.splitlines()
+    )
+    if podman_engine_enabled:
+        get_console().print(
+            "[error]Podman is not yet supported as a container engine in 
breeze.[/]\n"
+            "[warning]Please switch to Docker.[/]"
+        )
+        sys.exit(1)
+
+
 def check_remote_ghcr_io_commands():
     """Checks if you have permissions to pull an empty image from ghcr.io.
 
@@ -508,6 +538,7 @@ def check_executable_entrypoint_permissions(quiet: bool = 
False):
 @lru_cache
 def perform_environment_checks(quiet: bool = False):
     check_docker_is_running()
+    check_container_engine(quiet)
     check_docker_version(quiet)
     check_docker_compose_version(quiet)
     check_executable_entrypoint_permissions(quiet)

Reply via email to