Namespace
apache
Image / Tag
airflow:2.11.1
Content Digest
sha256:18130e49360be9e5cbe8bad00f5cda56995f347f4c7c0b5de143c6b746ede16d
Details
Created

2026-02-28 17:28:23 UTC

Size

606 MB

Content Digest
Labels
  • 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
    db092f08350be91bde1287cdf228c272fb3d5f62
  • org.apache.airflow.module
    airflow
  • org.apache.airflow.uid
    50000
  • org.apache.airflow.version
    2.11.1
  • 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
    db092f08350be91bde1287cdf228c272fb3d5f62
  • 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
    2.11.1

Environment
ADDITIONAL_RUNTIME_APT_COMMAND

ADDITIONAL_RUNTIME_APT_DEPS

AIRFLOW_HOME

/opt/airflow

AIRFLOW_INSTALLATION_METHOD

AIRFLOW_PIP_VERSION

26.0.1

AIRFLOW_UID

50000

AIRFLOW_USER_HOME_DIR

/home/airflow

AIRFLOW_USE_UV

false

AIRFLOW_UV_VERSION

0.10.7

AIRFLOW_VERSION

2.11.1

AIRFLOW__CORE__LOAD_EXAMPLES

false

BUILD_ID

COMMIT_SHA

db092f08350be91bde1287cdf228c272fb3d5f62

DEBIAN_FRONTEND

noninteractive

DUMB_INIT_SETSID

1

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

GUNICORN_CMD_ARGS

--worker-tmp-dir /dev/shm

INSTALL_MSSQL_CLIENT

true

INSTALL_MYSQL_CLIENT

true

INSTALL_MYSQL_CLIENT_TYPE

mariadb

INSTALL_POSTGRES_CLIENT

true

LANG

C.UTF-8

LANGUAGE

C.UTF-8

LC_ALL

C.UTF-8

LC_CTYPE

C.UTF-8

LC_MESSAGES

C.UTF-8

LD_LIBRARY_PATH

/usr/local/lib

PATH

/root/bin:/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PIP_CACHE_DIR

/tmp/.cache/pip

PS1

(airflow)

PYTHON_BASE_IMAGE

python:3.12-slim-bookworm

PYTHON_SHA256

fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

PYTHON_VERSION

3.12.12

RUNTIME_APT_COMMAND

echo

RUNTIME_APT_DEPS

UV_CACHE_DIR

/tmp/.cache/uv

VIRTUAL_ENV

/home/airflow/.local


Layers

[#000] sha256:84a2afebaf4de2e8eb885634a69abd0087b79c947c53fa4f0481235d6dfadc6c - 4.44% (26.9 MB)

[#001] sha256:2e8ff2a71e9573673dd17ca594722bd27eed7eb917debc0fb74ff9eb5d522ad1 - 0.55% (3.35 MB)

[#002] sha256:f9f25941dc135427be9d16894ce71a921adff16e2d43060139ed05c33fcd668e - 2.15% (13 MB)

[#003] sha256:dbeb2af0e7bd53c2dff6896f9bde583874dc48fbb85d8cda0e9040dec5424ca8 - 0.0% (249 Bytes)

[#004] sha256:7f7331df24a39d7e0a571705f3f363a771e45de0a2c600e43d6620cf4ea460c9 - 0.0% (1.47 KB)

[#005] sha256:4cacda286022bd4d1cbddc511a0909f718538753ba7b0f54025de4888334458c - 14.29% (86.6 MB)

[#006] sha256:28226c86162bd56bf7915d92a2f118804116305b88783baebc91eac3bf06ce09 - 0.0% (2.25 KB)

[#007] sha256:4cf33e9adde8a92bd1ed51443ec26b9ca960ba5dbf30e5e700d889567212b4cf - 0.0% (1.98 KB)

[#008] sha256:98c57c18b1ae340f4e18b830e501831402f87ba570ba3de91e57dd6d25c06a45 - 3.53% (21.4 MB)

[#009] sha256:b13935e1e3faafe967a640707d3bb7b80d675c78025a77e5ffaea66503598ed8 - 75.02% (455 MB)

[#010] sha256:11934769b5b22d98e4e0b33696819fc86048b90a8282b418cc5243c588db8ba1 - 0.0% (7.31 KB)

[#011] sha256:818e2def193db365b148addb888aa878beccfd799166e87523f800f00ab3954d - 0.0% (17.1 KB)

[#012] sha256:efeb5547540a8a50b780811e10c93ff80efbe4e146638f087f92c167fcabee87 - 0.0% (3.78 KB)

[#013] sha256:6d9e4e6ab92f311a546164286d7e843b346b367aff92c053e63ae2d8cd03f454 - 0.0% (490 Bytes)

[#014] sha256:9b39d0ee5da844e4b563ce1730fab1f66fc1da232bcdacbe61c279b70581c676 - 0.0% (288 Bytes)

[#015] sha256:9be2a0572cda91649315ca2bacf90591bb2b150a6172456534cf6cfd220aadfe - 0.0% (5.09 KB)

[#016] sha256:15cafe6f75a4f7e0dc5d825708135a8e22757cbe20719a9b58e6f5c8aa6e6f96 - 0.0% (1.04 KB)

[#017] sha256:364d0cfefa9f92af9e304e1c9acefc7e781ba828d23259139615c249beaa73ca - 0.0% (113 Bytes)

[#018] sha256:39241221c0ecabed8587e5af1ac74243877ae95f04a2b1f637d47d4f31fbd38d - 0.0% (419 Bytes)

[#019] sha256:9a598c88ac3beb667d8c6d2e3f538d91dd156862c34d9dbb4c06a82daff7bcac - 0.0% (419 Bytes)

[#020] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)


History
2026-02-23 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'bookworm' '@1771804800'

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12.12

2026-02-24 19:43:32 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

2026-02-24 20:31:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2026-02-24 20:31:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2026-02-24 20:31:52 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -o pipefail -o errexit -o nounset -o nolog -c]

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_UID

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

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

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG PYTHON_BASE_IMAGE

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ENV PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 LD_LIBRARY_PATH=/usr/local/lib PIP_CACHE_DIR=/tmp/.cache/pip UV_CACHE_DIR=/tmp/.cache/uv

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG RUNTIME_APT_DEPS=

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_DEPS=

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG RUNTIME_APT_COMMAND=echo

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_COMMAND=

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_ENV=

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MYSQL_CLIENT=true

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MYSQL_CLIENT_TYPE=mariadb

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MSSQL_CLIENT=true

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

ARG INSTALL_POSTGRES_CLIENT=true

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

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=

2026-02-28 17:24:26 UTC (buildkit.dockerfile.v0)

COPY install_os_dependencies.sh /scripts/docker/ # buildkit

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

RUN |11 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_os_dependencies.sh runtime # buildkit

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_INSTALLATION_METHOD=apache-airflow

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_REPOSITORY

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_README_URL

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_USER_HOME_DIR

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_HOME

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

ENV PATH=/home/airflow/.local/bin:/usr/local/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

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

COPY common.sh /scripts/docker/ # buildkit

2026-02-28 17:24:47 UTC (buildkit.dockerfile.v0)

COPY install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/ # buildkit

2026-02-28 17:25:08 UTC (buildkit.dockerfile.v0)

RUN |16 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 /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

2026-02-28 17:25:08 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_SOURCES_FROM

2026-02-28 17:25:08 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_SOURCES_TO

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY /home/airflow/.local /home/airflow/.local # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY /home/airflow/constraints.txt /home/airflow/constraints.txt # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY /Dockerfile /Dockerfile # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY entrypoint_prod.sh /entrypoint # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY clean-logs.sh /clean-logs # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY airflow-scheduler-autorestart.sh /airflow-scheduler-autorestart # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_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

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_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

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_VERSION

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_PIP_VERSION

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_UV_VERSION

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_USE_UV

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ENV DUMB_INIT_SETSID=1 PS1=(airflow) AIRFLOW_VERSION=2.11.1 AIRFLOW__CORE__LOAD_EXAMPLES=false PATH=/root/bin:/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

RUN |22 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=2.11.1 AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -pv /root/bin # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

COPY pip /root/bin/pip # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

RUN |22 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=2.11.1 AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod u+x /root/bin/pip # buildkit

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

WORKDIR /opt/airflow

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

USER 50000

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG BUILD_ID

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG COMMIT_SHA

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_REPOSITORY

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_DATE_CREATED

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ENV BUILD_ID= COMMIT_SHA=db092f08350be91bde1287cdf228c272fb3d5f62

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

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=2.11.1 org.apache.airflow.uid=50000 org.apache.airflow.main-image.build-id= org.apache.airflow.main-image.commit-sha=db092f08350be91bde1287cdf228c272fb3d5f62 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=2.11.1 org.opencontainers.image.revision=db092f08350be91bde1287cdf228c272fb3d5f62 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

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/bin/dumb-init" "--" "/entrypoint"]

2026-02-28 17:28:23 UTC (buildkit.dockerfile.v0)

CMD []

Details
Created

2026-02-28 17:29:29 UTC

Size

592 MB

Content Digest
Labels
  • 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
    db092f08350be91bde1287cdf228c272fb3d5f62
  • org.apache.airflow.module
    airflow
  • org.apache.airflow.uid
    50000
  • org.apache.airflow.version
    2.11.1
  • 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
    db092f08350be91bde1287cdf228c272fb3d5f62
  • 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
    2.11.1

Environment
ADDITIONAL_RUNTIME_APT_COMMAND

ADDITIONAL_RUNTIME_APT_DEPS

AIRFLOW_HOME

/opt/airflow

AIRFLOW_INSTALLATION_METHOD

AIRFLOW_PIP_VERSION

26.0.1

AIRFLOW_UID

50000

AIRFLOW_USER_HOME_DIR

/home/airflow

AIRFLOW_USE_UV

false

AIRFLOW_UV_VERSION

0.10.7

AIRFLOW_VERSION

2.11.1

AIRFLOW__CORE__LOAD_EXAMPLES

false

BUILD_ID

COMMIT_SHA

db092f08350be91bde1287cdf228c272fb3d5f62

DEBIAN_FRONTEND

noninteractive

DUMB_INIT_SETSID

1

GPG_KEY

7169605F62C751356D054A26A821E680E5FA6305

GUNICORN_CMD_ARGS

--worker-tmp-dir /dev/shm

INSTALL_MSSQL_CLIENT

true

INSTALL_MYSQL_CLIENT

true

INSTALL_MYSQL_CLIENT_TYPE

mariadb

INSTALL_POSTGRES_CLIENT

true

LANG

C.UTF-8

LANGUAGE

C.UTF-8

LC_ALL

C.UTF-8

LC_CTYPE

C.UTF-8

LC_MESSAGES

C.UTF-8

LD_LIBRARY_PATH

/usr/local/lib

PATH

/root/bin:/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PIP_CACHE_DIR

/tmp/.cache/pip

PS1

(airflow)

PYTHON_BASE_IMAGE

python:3.12-slim-bookworm

PYTHON_SHA256

fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

PYTHON_VERSION

3.12.12

RUNTIME_APT_COMMAND

echo

RUNTIME_APT_DEPS

UV_CACHE_DIR

/tmp/.cache/uv

VIRTUAL_ENV

/home/airflow/.local


Layers

[#000] sha256:eb04ef52de3a23999fcda632f100324a4d1dbebd588b4df190c4a172bb88c603 - 4.53% (26.8 MB)

[#001] sha256:2a131c235be7a6739f95b0703a577583b0a0d8e6bf4eea8b271f3cb0b09adb18 - 0.54% (3.19 MB)

[#002] sha256:7d7d63e37187049e51dd6c005cabc48e1f49168584d7ad8623bf2684df4dc095 - 2.19% (13 MB)

[#003] sha256:b00559a184b371583b8ee2b8b5705bb6f9f1d57171c482a160f674b1c5a631fc - 0.0% (250 Bytes)

[#004] sha256:24a53d32cac47aabab22aec1553f40a6c86aa08db15a302008bb3c44ad0a6cf6 - 0.0% (1.47 KB)

[#005] sha256:81fc3e621038200929683bd01a537e5cab08c1d5f061b0a477d1a58022ed6c24 - 14.33% (84.8 MB)

[#006] sha256:5d8c9e490ffe25ebf4b8c6244d38e5f92d336a362482a4711972e8860872658d - 0.0% (2.25 KB)

[#007] sha256:891ec2e382a6aba2b5167d6fb0599f2fa0c8cbd5bca0e9cd8387b27b45df49e1 - 0.0% (1.98 KB)

[#008] sha256:b245ed91657dd69b22b73674534e65adc1f76018d6773194da51d3bd3fed9550 - 3.58% (21.2 MB)

[#009] sha256:02e8e93405d9b4582d6a07840b6cca6ef3120ab30ebc94a0d5a6424c0762b565 - 74.82% (443 MB)

[#010] sha256:810f45409639ec96c9431c9c90625cabaded1608b89fb9b0caab88db6344b64e - 0.0% (7.3 KB)

[#011] sha256:2a4c6efb156e4acc4d7ed6f999fb31fae88426ff70ec3a7a4c6ba31c1b618912 - 0.0% (17.1 KB)

[#012] sha256:d7a87c230529e5eee358b36fde92792ae12612c603e60e02d367802addf80c13 - 0.0% (3.78 KB)

[#013] sha256:4db966c8f50e79547c96b2caa71edcdae4308b661ccccb5eb9130fada17abfbc - 0.0% (492 Bytes)

[#014] sha256:74f244da6ed3a81cafde922ca0e336b3d0deb1c26b9c4c3ae62dc8a485cd18f4 - 0.0% (290 Bytes)

[#015] sha256:46ddee44f34d911b9c9029417572358956b99ebbbbbe77c6033a5cc9c4c24f96 - 0.0% (5.09 KB)

[#016] sha256:04fcacbf113e86f7ea4c8fe0991b4492f91d7fdc61783664f7ceca62613a4fc1 - 0.0% (1.04 KB)

[#017] sha256:87ccc0473ee0196c5f97f27eeac4c4132d6468f3c7e371c3efad971fbaa32acb - 0.0% (115 Bytes)

[#018] sha256:fadca09c4884b531e7ac5868d2f7d336c798db67d6a9c33964aa2d447093992b - 0.0% (420 Bytes)

[#019] sha256:b3503643f835d88ebea4893f857625f7925558d208ed77c93349ba1fe398b23a - 0.0% (419 Bytes)

[#020] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)


History
2026-02-23 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1771804800'

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.12.12

2026-02-24 20:32:59 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4

2026-02-24 20:44:48 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared $(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:-} -Wl,--strip-all"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-} -Wl,-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit

2026-02-24 20:44:48 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit

2026-02-24 20:44:48 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -o pipefail -o errexit -o nounset -o nolog -c]

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_UID

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

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

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG PYTHON_BASE_IMAGE

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ENV PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 LD_LIBRARY_PATH=/usr/local/lib PIP_CACHE_DIR=/tmp/.cache/pip UV_CACHE_DIR=/tmp/.cache/uv

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG RUNTIME_APT_DEPS=

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_DEPS=

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG RUNTIME_APT_COMMAND=echo

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_COMMAND=

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG ADDITIONAL_RUNTIME_APT_ENV=

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MYSQL_CLIENT=true

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MYSQL_CLIENT_TYPE=mariadb

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG INSTALL_MSSQL_CLIENT=true

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

ARG INSTALL_POSTGRES_CLIENT=true

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

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=

2026-02-28 17:25:09 UTC (buildkit.dockerfile.v0)

COPY install_os_dependencies.sh /scripts/docker/ # buildkit

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

RUN |11 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_os_dependencies.sh runtime # buildkit

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_INSTALLATION_METHOD=apache-airflow

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_REPOSITORY

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_README_URL

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_USER_HOME_DIR

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_HOME

2026-02-28 17:25:36 UTC (buildkit.dockerfile.v0)

ENV PATH=/home/airflow/.local/bin:/usr/local/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

2026-02-28 17:25:37 UTC (buildkit.dockerfile.v0)

COPY common.sh /scripts/docker/ # buildkit

2026-02-28 17:25:37 UTC (buildkit.dockerfile.v0)

COPY install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/ # buildkit

2026-02-28 17:26:00 UTC (buildkit.dockerfile.v0)

RUN |16 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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 /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

2026-02-28 17:26:00 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_SOURCES_FROM

2026-02-28 17:26:00 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_SOURCES_TO

2026-02-28 17:29:28 UTC (buildkit.dockerfile.v0)

COPY /home/airflow/.local /home/airflow/.local # buildkit

2026-02-28 17:29:28 UTC (buildkit.dockerfile.v0)

COPY /home/airflow/constraints.txt /home/airflow/constraints.txt # buildkit

2026-02-28 17:29:28 UTC (buildkit.dockerfile.v0)

COPY /Dockerfile /Dockerfile # buildkit

2026-02-28 17:29:28 UTC (buildkit.dockerfile.v0)

COPY entrypoint_prod.sh /entrypoint # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

COPY clean-logs.sh /clean-logs # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

COPY airflow-scheduler-autorestart.sh /airflow-scheduler-autorestart # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_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

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_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

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_VERSION

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_PIP_VERSION

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_UV_VERSION

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_USE_UV

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ENV DUMB_INIT_SETSID=1 PS1=(airflow) AIRFLOW_VERSION=2.11.1 AIRFLOW__CORE__LOAD_EXAMPLES=false PATH=/root/bin:/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

RUN |22 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=2.11.1 AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -pv /root/bin # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

COPY pip /root/bin/pip # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

RUN |22 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.12-slim-bookworm 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_SOURCES_FROM=Dockerfile AIRFLOW_SOURCES_TO=/Dockerfile AIRFLOW_VERSION=2.11.1 AIRFLOW_PIP_VERSION=26.0.1 AIRFLOW_UV_VERSION=0.10.7 AIRFLOW_USE_UV=false /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod u+x /root/bin/pip # buildkit

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

WORKDIR /opt/airflow

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

EXPOSE map[8080/tcp:{}]

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

USER 50000

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG BUILD_ID

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG COMMIT_SHA

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_REPOSITORY

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ARG AIRFLOW_IMAGE_DATE_CREATED

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ENV BUILD_ID= COMMIT_SHA=db092f08350be91bde1287cdf228c272fb3d5f62

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

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=2.11.1 org.apache.airflow.uid=50000 org.apache.airflow.main-image.build-id= org.apache.airflow.main-image.commit-sha=db092f08350be91bde1287cdf228c272fb3d5f62 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=2.11.1 org.opencontainers.image.revision=db092f08350be91bde1287cdf228c272fb3d5f62 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

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/bin/dumb-init" "--" "/entrypoint"]

2026-02-28 17:29:29 UTC (buildkit.dockerfile.v0)

CMD []

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete