airflow (3.1.7-1)

Published 2026-03-02 02:00:56 +00:00 by azwan

Installation

docker pull git.abyres.net/elixier/airflow:3.1.7-1
sha256:1dc6fc0e49ed1625d13a4b4b499fd16b5a0f76d9772e4babcd1a2c62ce8cb4b7

About this package

Reference, production-ready Apache Airflow image

Image Layers

# debian.sh --arch 'amd64' out/ 'bookworm' '@1769990400'
SHELL [/bin/bash -o pipefail -o errexit -o nounset -o nolog -c]
ARG AIRFLOW_UID
LABEL org.apache.airflow.distro=debian org.apache.airflow.module=airflow org.apache.airflow.component=airflow org.apache.airflow.image=airflow org.apache.airflow.uid=50000
ARG BASE_IMAGE
ENV BASE_IMAGE=debian:bookworm-slim DEBIAN_FRONTEND=noninteractive LANGUAGE=C.UTF-8 LANG=C.UTF-8 LC_ALL=C.UTF-8 LC_CTYPE=C.UTF-8 LC_MESSAGES=C.UTF-8 PIP_CACHE_DIR=/tmp/.cache/pip UV_CACHE_DIR=/tmp/.cache/uv
ARG RUNTIME_APT_DEPS=
ARG ADDITIONAL_RUNTIME_APT_DEPS=
ARG RUNTIME_APT_COMMAND=echo
ARG ADDITIONAL_RUNTIME_APT_COMMAND=
ARG ADDITIONAL_RUNTIME_APT_ENV=
ARG INSTALL_MYSQL_CLIENT=true
ARG INSTALL_MYSQL_CLIENT_TYPE=mariadb
ARG INSTALL_MSSQL_CLIENT=true
ARG INSTALL_POSTGRES_CLIENT=true
ARG AIRFLOW_INSTALLATION_METHOD=apache-airflow
ENV RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true GUNICORN_CMD_ARGS=--worker-tmp-dir /dev/shm AIRFLOW_INSTALLATION_METHOD=apache-airflow
COPY /usr/python/ /usr/python/ # buildkit
COPY install_os_dependencies.sh /scripts/docker/ # buildkit
RUN |12 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow /bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_os_dependencies.sh runtime # buildkit
ARG AIRFLOW_IMAGE_REPOSITORY
ARG AIRFLOW_IMAGE_README_URL
ARG AIRFLOW_USER_HOME_DIR
ARG AIRFLOW_HOME
ARG AIRFLOW_IMAGE_TYPE
ENV PATH=/home/airflow/.local/bin:/usr/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin VIRTUAL_ENV=/home/airflow/.local AIRFLOW_UID=50000 AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod
COPY common.sh /scripts/docker/ # buildkit
COPY install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/ # buildkit
RUN |17 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow AIRFLOW_IMAGE_REPOSITORY=https://github.com/apache/airflow AIRFLOW_IMAGE_README_URL=https://raw.githubusercontent.com/apache/airflow/main/docs/docker-stack/README.md AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod /bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_mysql.sh prod && bash /scripts/docker/install_mssql.sh prod && bash /scripts/docker/install_postgres.sh prod && adduser --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password --quiet "airflow" --uid "${AIRFLOW_UID}" --gid "0" --home "${AIRFLOW_USER_HOME_DIR}" && mkdir -pv "${AIRFLOW_HOME}" && mkdir -pv "${AIRFLOW_HOME}/dags" && mkdir -pv "${AIRFLOW_HOME}/logs" && chown -R airflow:0 "${AIRFLOW_USER_HOME_DIR}" "${AIRFLOW_HOME}" && chmod -R g+rw "${AIRFLOW_USER_HOME_DIR}" "${AIRFLOW_HOME}" && find "${AIRFLOW_HOME}" -executable ! -type l -print0 | xargs --null chmod g+x && find "${AIRFLOW_USER_HOME_DIR}" -executable ! -type l -print0 | xargs --null chmod g+x # buildkit
ARG AIRFLOW_SOURCES_FROM
ARG AIRFLOW_SOURCES_TO
COPY /home/airflow/.local /home/airflow/.local # buildkit
COPY /home/airflow/constraints.txt /home/airflow/constraints.txt # buildkit
COPY /Dockerfile /Dockerfile # buildkit
COPY entrypoint_prod.sh /entrypoint # buildkit
COPY clean-logs.sh /clean-logs # buildkit
COPY airflow-scheduler-autorestart.sh /airflow-scheduler-autorestart # buildkit
RUN |19 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow AIRFLOW_IMAGE_REPOSITORY=https://github.com/apache/airflow AIRFLOW_IMAGE_README_URL=https://raw.githubusercontent.com/apache/airflow/main/docs/docker-stack/README.md AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod AIRFLOW_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod a+rx /entrypoint /clean-logs && chmod g=u /etc/passwd && chmod g+w "${AIRFLOW_USER_HOME_DIR}/.local" && usermod -g 0 airflow -G 0 # buildkit
RUN |19 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow AIRFLOW_IMAGE_REPOSITORY=https://github.com/apache/airflow AIRFLOW_IMAGE_README_URL=https://raw.githubusercontent.com/apache/airflow/main/docs/docker-stack/README.md AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod AIRFLOW_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile /bin/bash -o pipefail -o errexit -o nounset -o nolog -c sed --in-place=.bak "s/secure_path=\"/secure_path=\"$(echo -n ${AIRFLOW_USER_HOME_DIR} | sed 's/\//\\\//g')\/.local\/bin:/" /etc/sudoers # buildkit
ARG AIRFLOW_VERSION
ARG AIRFLOW_PIP_VERSION
ARG AIRFLOW_UV_VERSION
ARG AIRFLOW_USE_UV
ARG AIRFLOW_PYTHON_VERSION
ENV DUMB_INIT_SETSID=1 PS1=(airflow) AIRFLOW_VERSION=3.1.7 AIRFLOW_PYTHON_VERSION=3.12.12 AIRFLOW__CORE__LOAD_EXAMPLES=false PATH=/root/bin:/home/airflow/.local/bin:/usr/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin AIRFLOW_PIP_VERSION=26.0 AIRFLOW_UV_VERSION=0.9.29 AIRFLOW_USE_UV=false
RUN |24 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow AIRFLOW_IMAGE_REPOSITORY=https://github.com/apache/airflow AIRFLOW_IMAGE_README_URL=https://raw.githubusercontent.com/apache/airflow/main/docs/docker-stack/README.md AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod AIRFLOW_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=3.1.7 AIRFLOW_PIP_VERSION=26.0 AIRFLOW_UV_VERSION=0.9.29 AIRFLOW_USE_UV=false AIRFLOW_PYTHON_VERSION=3.12.12 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -pv /root/bin # buildkit
COPY pip /root/bin/pip # buildkit
RUN |24 AIRFLOW_UID=50000 BASE_IMAGE=debian:bookworm-slim RUNTIME_APT_DEPS= ADDITIONAL_RUNTIME_APT_DEPS= RUNTIME_APT_COMMAND=echo ADDITIONAL_RUNTIME_APT_COMMAND= ADDITIONAL_RUNTIME_APT_ENV= INSTALL_MYSQL_CLIENT=true INSTALL_MYSQL_CLIENT_TYPE=mariadb INSTALL_MSSQL_CLIENT=true INSTALL_POSTGRES_CLIENT=true AIRFLOW_INSTALLATION_METHOD=apache-airflow AIRFLOW_IMAGE_REPOSITORY=https://github.com/apache/airflow AIRFLOW_IMAGE_README_URL=https://raw.githubusercontent.com/apache/airflow/main/docs/docker-stack/README.md AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow AIRFLOW_IMAGE_TYPE=prod AIRFLOW_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=3.1.7 AIRFLOW_PIP_VERSION=26.0 AIRFLOW_UV_VERSION=0.9.29 AIRFLOW_USE_UV=false AIRFLOW_PYTHON_VERSION=3.12.12 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod u+x /root/bin/pip # buildkit
WORKDIR /opt/airflow
EXPOSE map[8080/tcp:{}]
USER 50000
ARG BUILD_ID
ARG COMMIT_SHA
ARG AIRFLOW_IMAGE_REPOSITORY
ARG AIRFLOW_IMAGE_DATE_CREATED
ENV BUILD_ID= COMMIT_SHA=6c37aec899ec461d46cbf5f099af762a59e6cfe9
LABEL org.apache.airflow.distro=debian org.apache.airflow.module=airflow org.apache.airflow.component=airflow org.apache.airflow.image=airflow org.apache.airflow.version=3.1.7 org.apache.airflow.python.version=3.12.12 org.apache.airflow.uid=50000 org.apache.airflow.main-image.build-id= org.apache.airflow.main-image.commit-sha=6c37aec899ec461d46cbf5f099af762a59e6cfe9 org.opencontainers.image.source=https://github.com/apache/airflow org.opencontainers.image.created= org.opencontainers.image.authors=dev@airflow.apache.org org.opencontainers.image.url=https://airflow.apache.org org.opencontainers.image.documentation=https://airflow.apache.org/docs/docker-stack/index.html org.opencontainers.image.version=3.1.7 org.opencontainers.image.revision=6c37aec899ec461d46cbf5f099af762a59e6cfe9 org.opencontainers.image.vendor=Apache Software Foundation org.opencontainers.image.licenses=Apache-2.0 org.opencontainers.image.ref.name=airflow org.opencontainers.image.title=Production Airflow Image org.opencontainers.image.description=Reference, production-ready Apache Airflow image
ENTRYPOINT ["/usr/bin/dumb-init" "--" "/entrypoint"]
CMD []
RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" apache-airflow[amazon,google,trino,azure] sqlalchemy-trino==0.5.0 pandas numpy pyarrow openpyxl fastparquet==2025.12.0 python-dateutil pendulum requests orjson great-expectations==1.12.3 pandera==0.29.0 pytest==9.0.2 --constraint "${HOME}/constraints.txt" # buildkit

Labels

Key Value
org.apache.airflow.component airflow
org.apache.airflow.distro debian
org.apache.airflow.image airflow
org.apache.airflow.main-image.build-id
org.apache.airflow.main-image.commit-sha 6c37aec899ec461d46cbf5f099af762a59e6cfe9
org.apache.airflow.module airflow
org.apache.airflow.python.version 3.12.12
org.apache.airflow.uid 50000
org.apache.airflow.version 3.1.7
org.opencontainers.image.authors dev@airflow.apache.org
org.opencontainers.image.created
org.opencontainers.image.description Reference, production-ready Apache Airflow image
org.opencontainers.image.documentation https://airflow.apache.org/docs/docker-stack/index.html
org.opencontainers.image.licenses Apache-2.0
org.opencontainers.image.ref.name airflow
org.opencontainers.image.revision 6c37aec899ec461d46cbf5f099af762a59e6cfe9
org.opencontainers.image.source https://github.com/apache/airflow
org.opencontainers.image.title Production Airflow Image
org.opencontainers.image.url https://airflow.apache.org
org.opencontainers.image.vendor Apache Software Foundation
org.opencontainers.image.version 3.1.7
Details
Container
2026-03-02 02:00:56 +00:00
51
OCI / Docker
linux/amd64
dev@airflow.apache.org
Apache-2.0
631 MiB
Versions (1) View all
3.1.7-1 2026-03-02