From c431f2a085aa1e4b8ced2a5e941ade80142cc0ff Mon Sep 17 00:00:00 2001 From: shaealh Date: Thu, 12 Mar 2026 00:24:44 -0700 Subject: [PATCH 1/2] Run DB check only for core commands in prod entrypoint --- Dockerfile | 7 ++++++- scripts/docker/entrypoint_prod.sh | 10 +++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 10ecf18d2cf2b..290ad6616618d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1417,6 +1417,10 @@ EOF COPY <<"EOF" /entrypoint_prod.sh #!/usr/bin/env bash AIRFLOW_COMMAND="${1:-}" +AIRFLOW_COMMAND_TO_RUN="${AIRFLOW_COMMAND}" +if [[ "${AIRFLOW_COMMAND}" == "airflow" ]]; then + AIRFLOW_COMMAND_TO_RUN="${2:-}" +fi set -euo pipefail @@ -1668,7 +1672,8 @@ readonly CONNECTION_CHECK_SLEEP_TIME create_system_user_if_missing set_pythonpath_for_root_user -if [[ "${CONNECTION_CHECK_MAX_COUNT}" -gt "0" ]]; then +if [[ "${CONNECTION_CHECK_MAX_COUNT}" -gt "0" ]] \ + && [[ ${AIRFLOW_COMMAND_TO_RUN} =~ ^(scheduler|dag-processor|triggerer|api-server)$ ]]; then wait_for_airflow_db fi diff --git a/scripts/docker/entrypoint_prod.sh b/scripts/docker/entrypoint_prod.sh index 88135c145c128..c2a07b87cde5f 100755 --- a/scripts/docker/entrypoint_prod.sh +++ b/scripts/docker/entrypoint_prod.sh @@ -17,6 +17,10 @@ # under the License. # Might be empty AIRFLOW_COMMAND="${1:-}" +AIRFLOW_COMMAND_TO_RUN="${AIRFLOW_COMMAND}" +if [[ "${AIRFLOW_COMMAND}" == "airflow" ]]; then + AIRFLOW_COMMAND_TO_RUN="${2:-}" +fi set -euo pipefail @@ -283,7 +287,8 @@ readonly CONNECTION_CHECK_SLEEP_TIME create_system_user_if_missing set_pythonpath_for_root_user -if [[ "${CONNECTION_CHECK_MAX_COUNT}" -gt "0" ]]; then +if [[ "${CONNECTION_CHECK_MAX_COUNT}" -gt "0" ]] \ + && [[ ${AIRFLOW_COMMAND_TO_RUN} =~ ^(scheduler|dag-processor|triggerer|api-server)$ ]]; then wait_for_airflow_db fi @@ -316,8 +321,7 @@ if [[ -n "${_PIP_ADDITIONAL_REQUIREMENTS=}" ]] ; then fi -# The `bash` and `python` commands should also verify the basic connections -# So they are run after the DB check +# Handle direct `bash` and `python` passthrough commands. exec_to_bash_or_python_command_if_specified "${@}" # Remove "airflow" if it is specified as airflow command From a12a3e009772f7bf11e015c1409085a2369b1a56 Mon Sep 17 00:00:00 2001 From: shaealh Date: Thu, 12 Mar 2026 03:10:50 -0700 Subject: [PATCH 2/2] Handle Helm bash -c airflow commands in DB check gating --- Dockerfile | 4 ++++ scripts/docker/entrypoint_prod.sh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/Dockerfile b/Dockerfile index 290ad6616618d..f105fd58c2a5b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1420,6 +1420,10 @@ AIRFLOW_COMMAND="${1:-}" AIRFLOW_COMMAND_TO_RUN="${AIRFLOW_COMMAND}" if [[ "${AIRFLOW_COMMAND}" == "airflow" ]]; then AIRFLOW_COMMAND_TO_RUN="${2:-}" +elif [[ "${AIRFLOW_COMMAND}" =~ ^(bash|sh)$ ]] \ + && [[ "${2:-}" == "-c" ]] \ + && [[ "${3:-}" =~ (^|[[:space:]])(exec[[:space:]]+)?airflow[[:space:]]+(scheduler|dag-processor|triggerer|api-server)([[:space:]]|$) ]]; then + AIRFLOW_COMMAND_TO_RUN="${BASH_REMATCH[3]}" fi set -euo pipefail diff --git a/scripts/docker/entrypoint_prod.sh b/scripts/docker/entrypoint_prod.sh index c2a07b87cde5f..3f4315317493c 100755 --- a/scripts/docker/entrypoint_prod.sh +++ b/scripts/docker/entrypoint_prod.sh @@ -20,6 +20,10 @@ AIRFLOW_COMMAND="${1:-}" AIRFLOW_COMMAND_TO_RUN="${AIRFLOW_COMMAND}" if [[ "${AIRFLOW_COMMAND}" == "airflow" ]]; then AIRFLOW_COMMAND_TO_RUN="${2:-}" +elif [[ "${AIRFLOW_COMMAND}" =~ ^(bash|sh)$ ]] \ + && [[ "${2:-}" == "-c" ]] \ + && [[ "${3:-}" =~ (^|[[:space:]])(exec[[:space:]]+)?airflow[[:space:]]+(scheduler|dag-processor|triggerer|api-server)([[:space:]]|$) ]]; then + AIRFLOW_COMMAND_TO_RUN="${BASH_REMATCH[3]}" fi set -euo pipefail