k-project/airflow (sha256:97126b9401286f8763c4cf9d8dd9d58ec21292cb235726609d4be9332be8e22b)

Published 2026-01-21 17:53:21 +00:00 by gdn

Installation

docker pull forge.dinoia.eu/gdn/k-project/airflow@sha256:97126b9401286f8763c4cf9d8dd9d58ec21292cb235726609d4be9332be8e22b
sha256:97126b9401286f8763c4cf9d8dd9d58ec21292cb235726609d4be9332be8e22b

About this package

Reference, production-ready Apache Airflow image

Image layers

# debian.sh --arch 'amd64' out/ 'bookworm' '@1768176000'
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.6 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=25.3 AIRFLOW_UV_VERSION=0.9.24 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.6 AIRFLOW_PIP_VERSION=25.3 AIRFLOW_UV_VERSION=0.9.24 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.6 AIRFLOW_PIP_VERSION=25.3 AIRFLOW_UV_VERSION=0.9.24 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=eea9b500cc227c2195cb7653acee2ad27c795433
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.6 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=eea9b500cc227c2195cb7653acee2ad27c795433 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.6 org.opencontainers.image.revision=eea9b500cc227c2195cb7653acee2ad27c795433 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 []
USER root
ENV UV_KEYRING_PROVIDER=subprocess UV_PROJECT_ENVIRONMENT=/home/airflow/.local UV_CACHE_DIR=/tmp/uv-cache PATH=/root/.local/bin:/root/bin:/home/airflow/.local/bin:/usr/python/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
COPY /uv /uvx /bin/ # buildkit
RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c uv tool install keyring --with keyrings.google-artifactregistry-auth # buildkit
WORKDIR /opt/airflow
COPY pyproject.toml uv.lock ./ # buildkit
RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c GOOGLE_APPLICATION_CREDENTIALS=/tmp/service_account.json uv sync --locked --no-install-project # buildkit
COPY ./config /opt/airflow/config # buildkit
COPY ./dags/ /opt/airflow/dags/ # buildkit
RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chown -R airflow:root /opt/airflow && chmod -R 777 /opt/airflow/logs && find /opt/airflow/dags -path "*/.worktrees*" -type d -exec rm -rf {} + 2>/dev/null || true # buildkit
USER airflow
ENV AIRFLOW_CONFIG=/opt/airflow/config/airflow.cfg

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 eea9b500cc227c2195cb7653acee2ad27c795433
org.apache.airflow.module airflow
org.apache.airflow.python.version 3.12.12
org.apache.airflow.uid 50000
org.apache.airflow.version 3.1.6
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 eea9b500cc227c2195cb7653acee2ad27c795433
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.6
Details
Container
2026-01-21 17:53:21 +00:00
1
OCI / Docker
linux/amd64
dev@airflow.apache.org
Apache-2.0
901 MiB
Versions (1) View all
latest 2026-01-21