Creative-Ataraxia opened a new pull request, #52928:
URL: https://github.com/apache/airflow/pull/52928

   > ...from the env '_AIRFLOW_DB_MIGRATE=true' but no commands passed in 
because the user's sole intention is to migrate db
   
   ### What this PR is
   
   This PR improves the behavior of `airflow/scripts/docker/entrypoint_prod.sh` 
when `_AIRFLOW_DB_MIGRATE=true` is set but no command is explicitly passed to 
the container. It adds a conditional check that **exits cleanly** if:
   
   * `_AIRFLOW_DB_MIGRATE` flag is set
   * No `command:` is passed via Docker Compose (i.e., `$# -eq 0`)
   
   Previously, the script would still fall through to `exec "airflow" "${@}"`, 
which results in a CLI error due to missing arguments (`GROUP_OR_COMMAND`), and 
exits with code 2.
   
   
   ### Why is the PR needed
   
   Currently, when using `docker-compose.yml` to define an `airflow-init` 
container for bootstrapping (for example, running DB migration), the flag 
`_AIRFLOW_DB_MIGRATE=true` already run `migrate_db`; Even when db migration 
succeeds, the container still exits with an error if no commands are passed to 
the service:
   
   ```
   airflow command error: the following arguments are required: GROUP_OR_COMMAND
   ```
   
   This creates confusion, especially in CI environments or startup 
orchestration, where the exit code may be interpreted as a failed container, 
even though db migration succeed.
   
   This PR prevents that misleading failure by exiting gracefully when the 
user's intent is only to "run migration and exit."
   
   
   ### How to reproduce the issue
   
   Create a Compose service like this:
   
   ```yaml
   airflow-init:
     image: apache/airflow:3.0.2
     environment:
       _AIRFLOW_DB_MIGRATE: "true"
     # no command specified
   ```
   
   Run:
   
   ```bash
   docker compose up airflow-init
   ```
   
   **Observed (before):**
   
   * DB migration runs successfully
   * Then: `airflow command error: the following arguments are required: 
GROUP_OR_COMMAND`
   * Container exits with code 2
   
   **Expected (after this PR):**
   
   * DB migration runs
   * No command passed → interpreted as init-only use case
   * Script logs an info message and exits cleanly with status 0


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to