Block a user
rxiq-airflow (b4c6efa6caca3fd371ae40b61c1bce8be7f9ea75)
Published 2026-04-24 10:15:04 +00:00 by admin
Installation
docker pull gitea.rxiq.co.uk/admin/rxiq-airflow:b4c6efa6caca3fd371ae40b61c1bce8be7f9ea75sha256:5a77b32fd4a5deb64965e6f45ffcd4772a375191baaaad69d829f7ecdd85835b
Images
| Digest | OS / Arch | Size |
|---|---|---|
| 1b59a56ac9 | linux/amd64 | 425 MiB |
Image Layers ( linux/amd64)
| ADD file:eb6a3def1f69e76655620640e610015f285bc23c97e89855feb1f0548309d518 in / |
| CMD ["bash"] |
| ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV LANG=C.UTF-8 |
| 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 |
| ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D |
| ENV PYTHON_VERSION=3.11.8 |
| 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 libexpat1-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"; 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 --with-lto --with-system-expat --without-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" "PROFILE_TASK=${PROFILE_TASK:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" "PROFILE_TASK=${PROFILE_TASK:-}" 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 -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; python3 --version # buildkit |
| RUN /bin/sh -c set -eux; for src in idle3 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 |
| ENV PYTHON_PIP_VERSION=24.0 |
| ENV PYTHON_SETUPTOOLS_VERSION=65.5.1 |
| ENV PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/dbf0c85f76fb6e1ab42aa672ffca6f0a675d9ee4/public/get-pip.py |
| ENV PYTHON_GET_PIP_SHA256=dfe9fd5c28dc98b5ac17979a953ea550cec37ae1b47a5116007395bfacff2ab9 |
| RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget; wget -O get-pip.py "$PYTHON_GET_PIP_URL"; echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python get-pip.py --disable-pip-version-check --no-cache-dir --no-compile "pip==$PYTHON_PIP_VERSION" "setuptools==$PYTHON_SETUPTOOLS_VERSION" ; rm -f get-pip.py; pip --version # buildkit |
| CMD ["python3"] |
| 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 PYTHON_BASE_IMAGE |
| ARG AIRFLOW_PIP_VERSION |
| ENV PYTHON_BASE_IMAGE=python:3.11-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 AIRFLOW_PIP_VERSION=23.3.2 |
| 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 |
| 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= |
| COPY install_os_dependencies.sh /scripts/docker/ # buildkit |
| RUN |12 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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 |
| ARG AIRFLOW_INSTALLATION_METHOD=apache-airflow |
| ARG AIRFLOW_IMAGE_REPOSITORY |
| ARG AIRFLOW_IMAGE_README_URL |
| ARG AIRFLOW_USER_HOME_DIR |
| ARG AIRFLOW_HOME |
| ENV PATH=/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin AIRFLOW_UID=50000 AIRFLOW_USER_HOME_DIR=/home/airflow AIRFLOW_HOME=/opt/airflow |
| ARG AIRFLOW_PIP_VERSION=23.3.2 |
| ENV AIRFLOW_PIP_VERSION=23.3.2 |
| COPY common.sh /scripts/docker/ # buildkit |
| COPY install_mysql.sh install_mssql.sh install_postgres.sh /scripts/docker/ # buildkit |
| RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 /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 -print0 | xargs --null chmod g+x && find "${AIRFLOW_USER_HOME_DIR}" -executable -print0 | xargs --null chmod g+x # buildkit |
| COPY /home/airflow/.local /home/airflow/.local # buildkit |
| COPY entrypoint_prod.sh /entrypoint # buildkit |
| COPY clean-logs.sh /clean-logs # buildkit |
| COPY airflow-scheduler-autorestart.sh /airflow-scheduler-autorestart # buildkit |
| RUN |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 /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 |18 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c sed --in-place=.bak "s/secure_path=\"/secure_path=\"\/.venv\/bin:/" /etc/sudoers # buildkit |
| ARG AIRFLOW_VERSION |
| COPY install_pip_version.sh /scripts/docker/ # buildkit |
| RUN |19 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 AIRFLOW_VERSION=2.8.1 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c bash /scripts/docker/install_pip_version.sh # buildkit |
| ENV DUMB_INIT_SETSID=1 PS1=(airflow) AIRFLOW_VERSION=2.8.1 AIRFLOW__CORE__LOAD_EXAMPLES=false PIP_USER=true PATH=/root/bin:/home/airflow/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN |19 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 AIRFLOW_VERSION=2.8.1 /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -pv /root/bin # buildkit |
| COPY pip /root/bin/pip # buildkit |
| RUN |19 AIRFLOW_UID=50000 PYTHON_BASE_IMAGE=python:3.11-slim-bookworm AIRFLOW_PIP_VERSION=23.3.2 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_PIP_VERSION=23.3.2 AIRFLOW_VERSION=2.8.1 /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=c0ffa9c5d96625c68ded9562632674ed366b5eb3 |
| 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.8.1 org.apache.airflow.uid=50000 org.apache.airflow.main-image.build-id= org.apache.airflow.main-image.commit-sha=c0ffa9c5d96625c68ded9562632674ed366b5eb3 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.8.1 org.opencontainers.image.revision=c0ffa9c5d96625c68ded9562632674ed366b5eb3 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 |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c apt-get update && apt-get install -y --no-install-recommends curl unzip libxml2 libxslt1.1 && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit |
| COPY airflow/requirements.txt /tmp/requirements.txt # buildkit |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c chmod 644 /tmp/requirements.txt # buildkit |
| USER airflow |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir -r /tmp/requirements.txt # buildkit |
| RUN /bin/bash -o pipefail -o errexit -o nounset -o nolog -c mkdir -p /opt/airflow/config # buildkit |
| COPY --chown=airflow airflow/dags/ /opt/airflow/dags/ # buildkit |
| COPY --chown=airflow config/forecast_source_registry.yml /opt/airflow/config/forecast_source_registry.yml # buildkit |
| COPY --chown=airflow rxiq/ /opt/airflow/rxiq/ # 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 | c0ffa9c5d96625c68ded9562632674ed366b5eb3 |
| org.apache.airflow.module | airflow |
| org.apache.airflow.uid | 50000 |
| org.apache.airflow.version | 2.8.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 | c0ffa9c5d96625c68ded9562632674ed366b5eb3 |
| 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.8.1 |
Details
2026-04-24 10:15:04 +00:00
Versions (134)
View all
Container
0
OCI / Docker
53f41c2922cd9b2c989a65752bdb64199f0ffddf
2026-05-21
latest
2026-05-21
62ef7d3cadc361a5b2f3436981f84355d8cd3943
2026-05-20
b7240cd7e92d54fffa379e10cb6e481035f814ea
2026-05-20
c8597788000b8ccba8be2d0a258f79812b7ece9d
2026-05-20