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)