airflow (sha256:b8aed939a964b6efcfb22f73ce8a3f2873bb2890aea79cd3175a9bedcccb6e2f)
Installation
docker pull git.datajob.de/dataint/airflow@sha256:b8aed939a964b6efcfb22f73ce8a3f2873bb2890aea79cd3175a9bedcccb6e2fsha256:b8aed939a964b6efcfb22f73ce8a3f2873bb2890aea79cd3175a9bedcccb6e2fAbout this package
TANSS Airflow application image (DAGs, scripts, SQL, migrations)
Image layers
| # debian.sh --arch 'amd64' out/ 'bookworm' '@1779062400' |
| 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 |
| ARG PYTHON_LTO |
| COPY /usr/python/ /usr/python/ # buildkit |
| COPY install_os_dependencies.sh /scripts/docker/ # buildkit |
| RUN |13 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 PYTHON_LTO=true /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 scripts/docker/keys/ /scripts/docker/keys/ # buildkit |
| COPY install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/ # buildkit |
| RUN |18 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 PYTHON_LTO=true 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 |20 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 PYTHON_LTO=true 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 |20 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 PYTHON_LTO=true 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.2.2 AIRFLOW_PYTHON_VERSION=3.13.13 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.1.1 AIRFLOW_UV_VERSION=0.11.16 AIRFLOW_USE_UV=false |
| RUN |25 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 PYTHON_LTO=true 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.2.2 AIRFLOW_PIP_VERSION=26.1.1 AIRFLOW_UV_VERSION=0.11.16 AIRFLOW_USE_UV=false AIRFLOW_PYTHON_VERSION=3.13.13 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -pv /root/bin # buildkit |
| COPY pip /root/bin/pip # buildkit |
| RUN |25 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 PYTHON_LTO=true 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.2.2 AIRFLOW_PIP_VERSION=26.1.1 AIRFLOW_UV_VERSION=0.11.16 AIRFLOW_USE_UV=false AIRFLOW_PYTHON_VERSION=3.13.13 /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=cde4885818be51a6cdcfdf9275e100bf070025de |
| 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.2.2 org.apache.airflow.python.version=3.13.13 org.apache.airflow.uid=50000 org.apache.airflow.main-image.build-id= org.apache.airflow.main-image.commit-sha=cde4885818be51a6cdcfdf9275e100bf070025de 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.2.2 org.opencontainers.image.revision=cde4885818be51a6cdcfdf9275e100bf070025de 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 [] |
| ARG AIRFLOW_VERSION=3.2.2 |
| ARG PYTHON_VERSION=3.13 |
| USER airflow |
| COPY --chown=airflow:root requirements.txt /tmp/requirements.txt # buildkit |
| RUN |2 AIRFLOW_VERSION=3.2.2 PYTHON_VERSION=3.13 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c pip install --no-cache-dir --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt" -r /tmp/requirements.txt && rm -f /tmp/requirements.txt # buildkit |
| RUN |2 AIRFLOW_VERSION=3.2.2 PYTHON_VERSION=3.13 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c python - <<'PY' import importlib.metadata as md # Exact names that must never be installed here. BANNED_EXACT = {"sentence-transformers", "torch", "triton"} # Any NVIDIA wheel, whatever the CUDA generation. The incident pulled # a CUDA stack, so this must not be pinned to one version family. BANNED_PREFIXES = ("nvidia-",) found = [] for dist in md.distributions(): raw = dist.metadata["Name"] if not raw: continue name = raw.lower() if name in BANNED_EXACT or name.startswith(BANNED_PREFIXES): found.append(raw) if found: raise SystemExit( "Banned heavy dependencies present: " + ", ".join(sorted(found)) ) print("dependency guard OK") PY # buildkit |
| LABEL org.opencontainers.image.title=datajob-airflow-base org.opencontainers.image.description=DATAJOB Airflow base image (no application code) org.opencontainers.image.source=https://git.datajob.de/DATAINT/airflow |
| USER airflow |
| COPY --chown=airflow:root requirements-app.txt /opt/airflow/requirements-app.txt # buildkit |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c pip install --no-cache-dir -r /opt/airflow/requirements-app.txt # buildkit |
| COPY --chown=airflow:root airflow/dags/ /opt/airflow/dags/ # buildkit |
| COPY --chown=airflow:root airflow/scripts/ /opt/airflow/scripts/ # buildkit |
| COPY --chown=airflow:root airflow/sql/ /opt/airflow/sql/ # buildkit |
| COPY --chown=airflow:root migrations/ /opt/airflow/migrations/ # buildkit |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -p /opt/airflow/plugins # buildkit |
| ENV PYTHONPATH=/opt/airflow/scripts PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 MIGRATIONS_DIR=/opt/airflow/migrations |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c python - <<'PY' import importlib.metadata as md # Exact names that must never be installed here. BANNED_EXACT = {"sentence-transformers", "torch", "triton"} # Any NVIDIA wheel, whatever the CUDA generation. The incident pulled # a CUDA stack, so this must not be pinned to one version family. BANNED_PREFIXES = ("nvidia-",) found = [] for dist in md.distributions(): raw = dist.metadata["Name"] if not raw: continue name = raw.lower() if name in BANNED_EXACT or name.startswith(BANNED_PREFIXES): found.append(raw) if found: raise SystemExit( "Banned heavy dependencies present: " + ", ".join(sorted(found)) ) for required in ("weaviate", "psycopg2", "requests", "httpx"): __import__(required) print("dependency guard OK") PY # buildkit |
| ARG GIT_SHA=5cdfc77 |
| ARG BUILD_DATE=2026-10-02T12:20:02Z |
| LABEL org.opencontainers.image.title=tanss-airflow org.opencontainers.image.description=TANSS Airflow application image (DAGs, scripts, SQL, migrations) org.opencontainers.image.source=https://git.datajob.de/DATAINT/airflow org.opencontainers.image.revision=5cdfc77 org.opencontainers.image.created=2026-10-02T12:20:02Z |
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 | cde4885818be51a6cdcfdf9275e100bf070025de |
| org.apache.airflow.module | airflow |
| org.apache.airflow.python.version | 3.13.13 |
| org.apache.airflow.uid | 50000 |
| org.apache.airflow.version | 3.2.2 |
| org.opencontainers.image.authors | dev@airflow.apache.org |
| org.opencontainers.image.created | 2026-10-02T12:20:02Z |
| org.opencontainers.image.description | TANSS Airflow application image (DAGs, scripts, SQL, migrations) |
| 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 | 5cdfc77cae0b7cd01cabae4036b7fdb41401a08b |
| org.opencontainers.image.source | https://git.datajob.de/DATAINT/airflow |
| org.opencontainers.image.title | tanss-airflow |
| org.opencontainers.image.url | https://airflow.apache.org |
| org.opencontainers.image.vendor | Apache Software Foundation |
| org.opencontainers.image.version | 3.2.2 |
Details
2026-10-02 12:21:36 +00:00
Versions (24)
View all
Container
1
OCI / Docker
linux/amd64
dev@airflow.apache.org
Apache-2.0
634 MiB
34bcd5d51911152e69f42f6c02e516bb6938d489
2026-10-04
5cdfc77cae0b7cd01cabae4036b7fdb41401a08b
2026-10-02
95a4ef2c70cf55470633ff5221fc73343a989f38
2026-09-30
94105d0fde24466ad37e324da98a30ac3c5bc67e
2026-09-29
db5588d2c90eb9194d0329ef2d84526e36bb619f
2026-09-29