macchiati_airflow (latest)
Published 2026-01-13 19:05:28 +00:00 by steph
Installation
docker pull git.homelab.macchiati.org/steph/macchiati_airflow:latestsha256:66569f2b261194cfc31bb9671a1c2f228af49690c3fafcaf71b032ab5dff7288About 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.13.11 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.13.11 /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.13.11 /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.13.11 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 [] |
| COPY requirements.txt / # buildkit |
| COPY rootCA.pem /usr/local/share/ca-certificates/rootCA.crt # buildkit |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c uv pip install --no-cache "apache-airflow==${AIRFLOW_VERSION}" -r /requirements.txt # buildkit |
| USER root |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c /usr/sbin/update-ca-certificates # 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 | eea9b500cc227c2195cb7653acee2ad27c795433 |
| org.apache.airflow.module | airflow |
| org.apache.airflow.python.version | 3.13.11 |
| 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
2026-01-13 19:05:28 +00:00
Versions (3)
View all
Container
6
OCI / Docker
linux/amd64
dev@airflow.apache.org
Apache-2.0
582 MiB