mirror of
https://github.com/apache/airflow.git
synced 2026-11-04 07:12:48 +00:00
85 lines
5.2 KiB
Markdown
85 lines
5.2 KiB
Markdown
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
<!--
|
|
This file was created for the purpose of publishing an image to ArtifactHub.
|
|
Please try to keep it in sync with index.rst
|
|
-->
|
|
|
|
# Docker Image for Apache Airflow
|
|
|
|
For the ease of deployment in production, the community releases a production-ready reference container
|
|
image.
|
|
|
|
The Apache Airflow community, releases Docker Images which are `reference images` for Apache Airflow.
|
|
Every time a new version of Airflow is released, the images are prepared in the
|
|
[apache/airflow DockerHub](https://hub.docker.com/r/apache/airflow)
|
|
for all the supported Python versions.
|
|
|
|
You can find the following images there (Assuming Airflow version `3.5.0`):
|
|
|
|
* `apache/airflow:latest` - the latest released Airflow image with default Python version (3.12 currently)
|
|
* `apache/airflow:latest-pythonX.Y` - the latest released Airflow image with specific Python version
|
|
* `apache/airflow:3.5.0` - the versioned Airflow image with default Python version (3.12 currently)
|
|
* `apache/airflow:3.5.0-pythonX.Y` - the versioned Airflow image with specific Python version
|
|
|
|
Those are "reference" regular images. They contain the most common set of extras, dependencies and providers that are
|
|
often used by the users and they are good to "try-things-out" when you want to just take Airflow for a spin,
|
|
|
|
You can also use "slim" images that contain only core Airflow and are about half the size of the "regular" images
|
|
but you need to add all the [Reference for package extras](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html) and providers that you need separately
|
|
via [Building the image](https://airflow.apache.org/docs/docker-stack/build.html#build-build-image).
|
|
|
|
* `apache/airflow:slim-latest` - the latest released Airflow image with default Python version (3.12 currently)
|
|
* `apache/airflow:slim-latest-pythonX.Y` - the latest released Airflow image with specific Python version
|
|
* `apache/airflow:slim-3.5.0` - the versioned Airflow image with default Python version (3.12 currently)
|
|
* `apache/airflow:slim-3.5.0-pythonX.Y` - the versioned Airflow image with specific Python version
|
|
|
|
The Apache Airflow image provided as convenience package is optimized for size, and
|
|
it provides just a bare minimal set of the extras and dependencies installed and in most cases
|
|
you want to either extend or customize the image. You can see all possible extras in [Reference for package extras](https://airflow.apache.org/docs/apache-airflow/stable/extra-packages-ref.html).
|
|
The set of extras used in Airflow Production image are available in the
|
|
[Dockerfile](https://github.com/apache/airflow/blob/2c6c7fdb2308de98e142618836bdf414df9768c8/Dockerfile#L37).
|
|
|
|
However, Airflow has more than 90 community-managed providers (installable via extras) and some of the
|
|
default extras/providers installed are not used by everyone, sometimes others extras/providers
|
|
are needed, sometimes (very often actually) you need to add your own custom dependencies,
|
|
packages or even custom providers. You can learn how to do it in [Building the image](https://airflow.apache.org/docs/docker-stack/build.html#build-build-image).
|
|
|
|
The production images are built in DockerHub from released version and release candidates. There
|
|
are also images published from branches but they are used mainly for development and testing purpose.
|
|
See [Airflow Git Branching](https://github.com/apache/airflow/blob/main/contributing-docs/10_working_with_git.rst#airflow-git-branches)
|
|
for details.
|
|
|
|
## Usage
|
|
|
|
The [`AIRFLOW_HOME`](https://airflow.apache.org/docs/apache-airflow/stable/cli-and-env-variables-ref.html#envvar-AIRFLOW_HOME) is set by default to ``/opt/airflow/`` - this means that dags
|
|
are in default in the ``/opt/airflow/dags`` folder and logs are in the ``/opt/airflow/logs``
|
|
|
|
The working directory is ``/opt/airflow`` by default.
|
|
|
|
If no `AIRFLOW__DATABASE__SQL_ALCHEMY_CONN` variable is set then SQLite database is created in
|
|
``${AIRFLOW_HOME}/airflow.db``.
|
|
|
|
For example commands that start Airflow see: [Executing commands](https://airflow.apache.org/docs/docker-stack/entrypoint.html#entrypoint-commands).
|
|
|
|
Airflow requires many components to function as it is a distributed application. You may therefore also be interested
|
|
in launching Airflow in the Docker Compose environment, see: [Running Airflow in Docker](https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html).
|
|
|
|
You can use this image in [Helm Chart](https://airflow.apache.org/docs/helm-chart/stable/index.html) as well.
|