Ubuntu rock for Apache Airflow - a workflow management platform for data engineering pipelines.
2.4K
Current airflow Docker Image from Canonical, based on Ubuntu. Receives security updates and rolls to newer airflow or Ubuntu release. This repository is free to use and exempt from per-user rate limits.
Apache Airflow is a platform to programmatically author, schedule, and monitor workflows. This rock ("airflow") packages Airflow built from source on Ubuntu with Python and a wide set of providers.
Up to 5 years of free security maintenance on LTS channels.
Up to 10 years of customer security maintenance from Canonical's restricted repositories.
| Channel Tags | Supported until | Currently | Architectures |
|---|---|---|---|
3.1-24.04_edge | 10/2026 | airflow 3.1 on Ubuntu 24.04 LTS | arm64, amd64 |
track_risk |
Channel Tags shows the most stable channel for that track ordered stable, candidate, beta, edge. More risky channels are always implicitly available. So if beta is listed, you can also pull edge. If candidate is listed, you can pull beta and edge. When stable is listed, all four are available. Images are guaranteed to progress through the sequence edge, beta, candidate before stable.
If your usage includes commercial redistribution, or requires ESM or unavailable channels/versions, please get in touch with the Canonical team (or using [email protected]).
Launch this image locally:
docker run -d --name airflow-container -e TZ=UTC -p 8080:8080 -e AIRFLOW_HOME=/opt/airflow -v /path/to/dags:/opt/airflow/dags -v /path/to/airflow.cfg:/opt/airflow/airflow.cfg ubuntu/airflow:3.1-24.04_edge
The rock uses Pebble, a lightweight service manager. Pebble is PID 1 in the container, and it supervises the Airflow service defined in the rock.
The airflow service is configured with:
command: /usr/bin/airflow standalone
startup: enabled
airflow standalone initializes a local metadata DB, creates a default admin user, and starts the webserver, scheduler, and other core components in one process group (intended for development).
/opt/airflow. This includes airflow.cfg, airflow.db (Database by default for standalone), logs, and dags/.-v ./dags:/opt/airflow/dags
-v ./airflow.cfg:/opt/airflow/airflow.cfgThe rock is built from Airflow with many providers pre-installed (Amazon, GCP, Kubernetes, MySQL, Postgres, etc.), so common integrations work out of the box without requiring pip install inside the container.
Airflow offers a large number of configuration options that can be set via environment variables or airflow.cfg.
For the complete list of configurable settings, consult the official configuration reference
| Parameter | Description |
|---|---|
-e AIRFLOW_HOME=/opt/airflow | Root directory for Airflow state inside the container (DB, logs, dags, config). The rock sets this to /opt/airflow. |
-e AIRFLOW__CORE__LOAD_EXAMPLES=false | Whether to load the DAG examples that ship with Airflow. It’s good to get started, but you probably want to set this to False in a production environment |
-e AIRFLOW__CORE__EXECUTOR=LocalExecutor | The executor class that airflow should use. Choices include LocalExecutor, CeleryExecutor, KubernetesExecutor or the full import path to the class when using a custom executor. |
-e AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@db:5432/airflow | SQLAlchemy connection string for the Airflow metadata DB. airflow standalone defaults to local SQLite, but for production you generally want Postgres or MySQL. Override this to point at an external DB. |
e AIRFLOW__CORE__AUTH_MANAGER=airflow.api_fastapi.auth.managers.simple.simple_auth_manager.SimpleAuthManager | For more information on available authentication managers and the configuration options they require, refer to the official Airflow Auth Manager documentation |
-p 8080:8080 | Airflow Webserver UI (HTTP). This is what you open in the browser. These are documented in the upstream Helm chart. |
-p 8794:8794 | Triggerer log server port. Used for log streaming and collection by the Airflow triggerer. Officially defined in the Airflow Helm Chart as ports.triggererLogs. These are documented in the upstream Helm chart. |
-p 8793:8793 | Worker log server port. Used for log streaming and collection by Airflow workers in distributed setups. Officially defined in the Airflow Helm Chart as ports.workerLogs. These are documented in the upstream Helm chart. |
-v /path/to/dags:/opt/airflow/dags | Mount your DAGs from the host so you can iterate without rebuilding the rock. Anything in /opt/airflow/dags will be auto-discovered. |
-v /path/to/logs:/opt/airflow/logs | Persist task logs outside the container (useful for debugging and restarts). |
-v /path/to/airflow.cfg:/opt/airflow/airflow.cfg | Inject a custom airflow.cfg instead of the auto-generated one from airflow standalone. |
-v /path/to/requirements.txt:/requirements.txt | (Optional) If you extend this rock and want extra Python deps at runtime, you can mount and install them in an init hook / derived image. |
-e AIRFLOW__API__SECRET_KEY=change-me | Secret key used to run your api server. It should be as random as possible. However, when running more than 1 instances of the api, make sure all of them use the same secret_key otherwise one of them will error with “CSRF session token is missing”. |
-e AIRFLOW__API__BASE_URL=https://airflow.example.com | The base url of the API server. |
-e AIRFLOW__CORE__MAX_ACTIVE_TASKS_PER_DAG=16 | The maximum number of task instances allowed to run concurrently in each dag run. |
To debug the container:
docker logs -f airflow-container
To get an interactive shell:
docker exec -it airflow-container /bin/bash
If you find a bug in our image or want to request a specific feature, please file a bug here:
https://bugs.launchpad.net/ubuntu-docker-images/+filebug
Please title the bug "airflow: <issue summary>". Make sure to include the digest of the image you are using, from:
docker images --no-trunc --quiet ubuntu/airflow:<tag>
These channels (tags) are not updated anymore. Please upgrade to newer channels, or reach out if you can't upgrade.
| Track | Version | EOL | Upgrade Path |
|---|---|---|---|
| airflow 3 on Ubuntu 24.04 LTS | 04/2026 | - | |
track |
Content type
Image
Digest
sha256:bfb468cd1…
Size
702.9 MB
Last updated
16 days ago
docker pull ubuntu/airflow:3.1-24.04_edgePulls:
28
Last week