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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]