summaryrefslogtreecommitdiffstats
path: root/fluent-bit/dockerfiles
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/dockerfiles')
-rw-r--r--fluent-bit/dockerfiles/Dockerfile238
-rw-r--r--fluent-bit/dockerfiles/Dockerfile.centos728
-rw-r--r--fluent-bit/dockerfiles/Dockerfile.windows97
-rw-r--r--fluent-bit/dockerfiles/README.md119
-rw-r--r--fluent-bit/dockerfiles/dockerhub-description.md71
5 files changed, 553 insertions, 0 deletions
diff --git a/fluent-bit/dockerfiles/Dockerfile b/fluent-bit/dockerfiles/Dockerfile
new file mode 100644
index 00000000..bc0c06c5
--- /dev/null
+++ b/fluent-bit/dockerfiles/Dockerfile
@@ -0,0 +1,238 @@
+
+# To use this container you may need to do the following:
+# https://askubuntu.com/a/1369504
+# sudo add-apt-repository ppa:jacob/virtualisation #(for Ubuntu 20.04)
+# sudo apt-get update && sudo apt-get install qemu qemu-user qemu-user-static
+# https://stackoverflow.com/a/60667468
+# docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+# docker buildx rm builder
+# docker buildx create --name builder --use
+# docker buildx inspect --bootstrap
+# docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" -f ./dockerfiles/Dockerfile.multiarch --build-arg FLB_TARBALL=https://github.com/fluent/fluent-bit/archive/v1.8.11.tar.gz ./dockerfiles/
+
+# Set this to the current release version: it gets done so as part of the release.
+ARG RELEASE_VERSION=2.1.10
+
+# For multi-arch builds - assumption is running on an AMD64 host
+FROM multiarch/qemu-user-static:x86_64-arm as qemu-arm32
+FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu-arm64
+
+FROM debian:bullseye-slim as builder-base
+
+COPY --from=qemu-arm32 /usr/bin/qemu-arm-static /usr/bin/
+COPY --from=qemu-arm64 /usr/bin/qemu-aarch64-static /usr/bin/
+
+ARG FLB_NIGHTLY_BUILD
+ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD
+
+ARG FLB_CHUNK_TRACE=On
+ENV FLB_CHUNK_TRACE=${FLB_CHUNK_TRACE}
+
+RUN mkdir -p /fluent-bit/bin /fluent-bit/etc /fluent-bit/log
+
+ENV DEBIAN_FRONTEND noninteractive
+
+# hadolint ignore=DL3008
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ build-essential \
+ curl \
+ ca-certificates \
+ cmake \
+ git \
+ make \
+ tar \
+ libssl-dev \
+ libsasl2-dev \
+ pkg-config \
+ libsystemd-dev/bullseye-backports \
+ zlib1g-dev \
+ libpq-dev \
+ postgresql-server-dev-all \
+ flex \
+ bison \
+ libyaml-dev \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+# Must be run from root of repo
+WORKDIR /src/fluent-bit/
+COPY . ./
+
+# We split the builder setup out so people can target it or use as a base image without doing a full build.
+FROM builder-base as builder
+WORKDIR /src/fluent-bit/build/
+RUN cmake -DFLB_RELEASE=On \
+ -DFLB_JEMALLOC=On \
+ -DFLB_TLS=On \
+ -DFLB_SHARED_LIB=Off \
+ -DFLB_EXAMPLES=Off \
+ -DFLB_HTTP_SERVER=On \
+ -DFLB_IN_EXEC=Off \
+ -DFLB_IN_SYSTEMD=On \
+ -DFLB_OUT_KAFKA=On \
+ -DFLB_OUT_PGSQL=On \
+ -DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
+ -DFLB_LOG_NO_CONTROL_CHARS=On \
+ -DFLB_CHUNK_TRACE="$FLB_CHUNK_TRACE" \
+ ..
+
+RUN make -j "$(getconf _NPROCESSORS_ONLN)"
+RUN install bin/fluent-bit /fluent-bit/bin/
+
+# Configuration files
+COPY conf/fluent-bit.conf \
+ conf/parsers.conf \
+ conf/parsers_ambassador.conf \
+ conf/parsers_java.conf \
+ conf/parsers_extra.conf \
+ conf/parsers_openstack.conf \
+ conf/parsers_cinder.conf \
+ conf/plugins.conf \
+ /fluent-bit/etc/
+
+# Generate schema and include as part of the container image
+RUN /fluent-bit/bin/fluent-bit -J > /fluent-bit/etc/schema.json
+
+# Simple example of how to properly extract packages for reuse in distroless
+# Taken from: https://github.com/GoogleContainerTools/distroless/issues/863
+FROM debian:bullseye-slim as deb-extractor
+COPY --from=qemu-arm32 /usr/bin/qemu-arm-static /usr/bin/
+COPY --from=qemu-arm64 /usr/bin/qemu-aarch64-static /usr/bin/
+
+# We download all debs locally then extract them into a directory we can use as the root for distroless.
+# We also include some extra handling for the status files that some tooling uses for scanning, etc.
+WORKDIR /tmp
+SHELL ["/bin/bash", "-o", "pipefail", "-c"]
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list && \
+ apt-get update && \
+ apt-get download \
+ libssl1.1 \
+ libsasl2-2 \
+ pkg-config \
+ libpq5 \
+ libsystemd0/bullseye-backports \
+ zlib1g \
+ ca-certificates \
+ libatomic1 \
+ libgcrypt20 \
+ libzstd1 \
+ liblz4-1 \
+ libgssapi-krb5-2 \
+ libldap-2.4-2 \
+ libgpg-error0 \
+ libkrb5-3 \
+ libk5crypto3 \
+ libcom-err2 \
+ libkrb5support0 \
+ libgnutls30 \
+ libkeyutils1 \
+ libp11-kit0 \
+ libidn2-0 \
+ libunistring2 \
+ libtasn1-6 \
+ libnettle8 \
+ libhogweed6 \
+ libgmp10 \
+ libffi7 \
+ liblzma5 \
+ libyaml-0-2 && \
+ mkdir -p /dpkg/var/lib/dpkg/status.d/ && \
+ for deb in *.deb; do \
+ package_name=$(dpkg-deb -I "${deb}" | awk '/^ Package: .*$/ {print $2}'); \
+ echo "Processing: ${package_name}"; \
+ dpkg --ctrl-tarfile "$deb" | tar -Oxf - ./control > "/dpkg/var/lib/dpkg/status.d/${package_name}"; \
+ dpkg --extract "$deb" /dpkg || exit 10; \
+ done
+
+# Remove unnecessary files extracted from deb packages like man pages and docs etc.
+RUN find /dpkg/ -type d -empty -delete && \
+ rm -r /dpkg/usr/share/doc/
+
+# We want latest at time of build
+# hadolint ignore=DL3006
+FROM gcr.io/distroless/cc-debian11 as production
+ARG RELEASE_VERSION
+ENV FLUENT_BIT_VERSION=${RELEASE_VERSION}
+LABEL description="Fluent Bit multi-architecture container image" \
+ vendor="Fluent Organization" \
+ version="${RELEASE_VERSION}" \
+ author="Eduardo Silva <eduardo@calyptia.com>" \
+ org.opencontainers.image.description="Fluent Bit container image" \
+ org.opencontainers.image.title="Fluent Bit" \
+ org.opencontainers.image.licenses="Apache-2.0" \
+ org.opencontainers.image.vendor="Fluent Organization" \
+ org.opencontainers.image.version="${RELEASE_VERSION}" \
+ org.opencontainers.image.source="https://github.com/fluent/fluent-bit" \
+ org.opencontainers.image.documentation="https://docs.fluentbit.io/" \
+ org.opencontainers.image.authors="Eduardo Silva <eduardo@calyptia.com>"
+
+# Copy the libraries from the extractor stage into root
+COPY --from=deb-extractor /dpkg /
+
+# Copy certificates
+COPY --from=builder /etc/ssl/certs /etc/ssl/certs
+
+# Finally the binaries as most likely to change
+COPY --from=builder /fluent-bit /fluent-bit
+
+EXPOSE 2020
+
+# Entry point
+ENTRYPOINT [ "/fluent-bit/bin/fluent-bit" ]
+CMD ["/fluent-bit/bin/fluent-bit", "-c", "/fluent-bit/etc/fluent-bit.conf"]
+
+FROM debian:bullseye-slim as debug
+ARG RELEASE_VERSION
+ENV FLUENT_BIT_VERSION=${RELEASE_VERSION}
+LABEL description="Fluent Bit multi-architecture debug container image" \
+ vendor="Fluent Organization" \
+ version="${RELEASE_VERSION}-debug" \
+ author="Eduardo Silva <eduardo@calyptia.com>" \
+ org.opencontainers.image.description="Fluent Bit debug container image" \
+ org.opencontainers.image.title="Fluent Bit Debug" \
+ org.opencontainers.image.licenses="Apache-2.0" \
+ org.opencontainers.image.vendor="Fluent Organization" \
+ org.opencontainers.image.version="${RELEASE_VERSION}-debug" \
+ org.opencontainers.image.source="https://github.com/fluent/fluent-bit" \
+ org.opencontainers.image.documentation="https://docs.fluentbit.io/" \
+ org.opencontainers.image.authors="Eduardo Silva <eduardo@calyptia.com>"
+
+COPY --from=qemu-arm32 /usr/bin/qemu-arm-static /usr/bin/
+COPY --from=qemu-arm64 /usr/bin/qemu-aarch64-static /usr/bin/
+ENV DEBIAN_FRONTEND noninteractive
+
+# hadolint ignore=DL3008
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ libssl1.1 \
+ libsasl2-2 \
+ pkg-config \
+ libpq5 \
+ libsystemd0/bullseye-backports \
+ zlib1g \
+ ca-certificates \
+ libatomic1 \
+ libgcrypt20 \
+ libyaml-0-2 \
+ bash gdb valgrind build-essential \
+ git bash-completion vim tmux jq \
+ dnsutils iputils-ping iputils-arping iputils-tracepath iputils-clockdiff \
+ tcpdump curl nmap tcpflow iftop \
+ net-tools mtr netcat-openbsd bridge-utils iperf ngrep \
+ openssl \
+ htop atop strace iotop sysstat ncdu logrotate hdparm pciutils psmisc tree pv \
+ cmake make tar flex bison \
+ libssl-dev libsasl2-dev libsystemd-dev/bullseye-backports zlib1g-dev libpq-dev libyaml-dev postgresql-server-dev-all \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN rm -f /usr/bin/qemu-*-static
+COPY --from=builder /fluent-bit /fluent-bit
+
+EXPOSE 2020
+
+# No entry point so we can just shell in
+CMD ["/fluent-bit/bin/fluent-bit", "-c", "/fluent-bit/etc/fluent-bit.conf"]
diff --git a/fluent-bit/dockerfiles/Dockerfile.centos7 b/fluent-bit/dockerfiles/Dockerfile.centos7
new file mode 100644
index 00000000..daeb49a9
--- /dev/null
+++ b/fluent-bit/dockerfiles/Dockerfile.centos7
@@ -0,0 +1,28 @@
+# This container image is primarily used to test compilation works for CentOS 7, it is
+# not intended for production usage.
+# Based on https://github.com/fluent/fluent-bit-packaging/tree/master/distros/centos/7
+FROM centos:7
+
+# hadolint ignore=DL3032, DL3033
+RUN yum -y update && \
+ yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
+ wget unzip systemd-devel wget flex bison \
+ cyrus-sasl-lib cyrus-sasl-devel openssl openss-libs openssl-devel \
+ postgresql-libs postgresql-devel postgresql-server postgresql libyaml-devel && \
+ wget -q http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && \
+ rpm -ivh epel-release-latest-7.noarch.rpm && \
+ yum install -y cmake3
+
+COPY . /src/
+WORKDIR /src/build
+
+RUN cmake3 -DCMAKE_INSTALL_PREFIX=/opt/fluent-bit/ -DCMAKE_INSTALL_SYSCONFDIR=/etc/ \
+ -DFLB_RELEASE=On -DFLB_TRACE=On \
+ -DFLB_TESTS_INTERNAL=On -DFLB_TESTS_RUNTIME=On \
+ -DFLB_SQLDB=On -DFLB_HTTP_SERVER=On \
+ -DFLB_OUT_KAFKA=On \
+ -DFLB_JEMALLOC=On \
+ -DFLB_CHUNK_TRACE=On \
+ -DFLB_OUT_PGSQL=On ../
+
+RUN make -j "$(getconf _NPROCESSORS_ONLN)"
diff --git a/fluent-bit/dockerfiles/Dockerfile.windows b/fluent-bit/dockerfiles/Dockerfile.windows
new file mode 100644
index 00000000..eae4bda3
--- /dev/null
+++ b/fluent-bit/dockerfiles/Dockerfile.windows
@@ -0,0 +1,97 @@
+# escape=`
+
+ARG WINDOWS_VERSION=ltsc2019
+
+# Builder Image - Windows Server Core
+FROM mcr.microsoft.com/windows/servercore:$WINDOWS_VERSION as builder
+
+RUN setx /M PATH "%PATH%;C:\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\WinFlexBison"
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+WORKDIR /local
+
+# Install Visual Studio 2019
+ADD https://aka.ms/vs/16/release/vs_buildtools.exe /local/vs_buildtools.exe
+ADD https://aka.ms/vs/16/release/channel /local/VisualStudio.chman
+
+RUN Start-Process /local/vs_buildtools.exe `
+ -ArgumentList '--quiet ', '--wait ', '--norestart ', '--nocache', `
+ '--installPath C:\BuildTools', `
+ '--channelUri C:\local\VisualStudio.chman', `
+ '--installChannelUri C:\local\VisualStudio.chman', `
+ '--add Microsoft.VisualStudio.Workload.VCTools', `
+ '--includeRecommended' -NoNewWindow -Wait;
+
+ADD https://github.com/lexxmark/winflexbison/releases/download/v2.5.22/win_flex_bison-2.5.22.zip /local/win_flex_bison.zip
+
+RUN Expand-Archive /local/win_flex_bison.zip -Destination /WinFlexBison; `
+ Copy-Item -Path /WinFlexBison/win_bison.exe /WinFlexBison/bison.exe; `
+ Copy-Item -Path /WinFlexBison/win_flex.exe /WinFlexBison/flex.exe;
+
+# Technique from https://github.com/StefanScherer/dockerfiles-windows/blob/master/mongo/3.6/Dockerfile
+WORKDIR /local
+ADD https://aka.ms/vs/15/release/vc_redist.x64.exe /local/vc_redist.x64.exe
+
+WORKDIR /fluent-bit/bin/
+RUN Start-Process /local/vc_redist.x64.exe -ArgumentList '/install', '/quiet', '/norestart' -NoNewWindow -Wait; `
+ Copy-Item -Path /Windows/System32/msvcp140.dll -Destination /fluent-bit/bin/; `
+ Copy-Item -Path /Windows/System32/vccorlib140.dll -Destination /fluent-bit/bin/; `
+ Copy-Item -Path /Windows/System32/vcruntime140.dll -Destination /fluent-bit/bin/;
+
+# Install Chocolatey and OpenSSL: https://github.com/StefanScherer/dockerfiles-windows/blob/main/openssl/Dockerfile
+ENV chocolateyUseWindowsCompression false
+ENV chocolateyVersion '1.4.0'
+RUN iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')); `
+ choco feature disable --name showDownloadProgress ; `
+ choco install -y openssl;
+
+# Build Fluent Bit from source - context must be the root of the Git repo
+WORKDIR /src/build
+COPY . /src/
+
+RUN cmake -G "'Visual Studio 16 2019'" -DOPENSSL_ROOT_DIR='C:\Program Files\OpenSSL-Win64' -DCMAKE_BUILD_TYPE=Release ../;`
+ cmake --build . --config Release;
+
+# Set up config files and binaries in single /fluent-bit hierarchy for easy copy in later stage
+RUN New-Item -Path /fluent-bit/etc/ -ItemType "directory"; `
+ Copy-Item -Path /src/conf/fluent-bit-win32.conf /fluent-bit/etc/fluent-bit.conf; `
+ Copy-Item -Path /src/conf/parsers.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/parsers_ambassador.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/parsers_java.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/parsers_extra.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/parsers_openstack.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/parsers_cinder.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/conf/plugins.conf /fluent-bit/etc/; `
+ Copy-Item -Path /src/build/bin/Release/fluent-bit.exe /fluent-bit/bin/; `
+ Copy-Item -Path /src/build/bin/Release/fluent-bit.dll /fluent-bit/bin/;
+#
+# Runtime Image - Windows Server Core
+#
+FROM mcr.microsoft.com/windows/servercore:$WINDOWS_VERSION as runtime
+
+ARG FLUENTBIT_VERSION=master
+ARG IMAGE_CREATE_DATE
+ARG IMAGE_SOURCE_REVISION
+
+# Metadata as defined in OCI image spec annotations
+# https://github.com/opencontainers/image-spec/blob/master/annotations.md
+LABEL org.opencontainers.image.title="Fluent Bit" `
+ org.opencontainers.image.description="Fluent Bit is an open source and multi-platform Log Processor and Forwarder which allows you to collect data/logs from different sources, unify and send them to multiple destinations. It's fully compatible with Docker and Kubernetes environments." `
+ org.opencontainers.image.created=$IMAGE_CREATE_DATE `
+ org.opencontainers.image.version=$FLUENTBIT_VERSION `
+ org.opencontainers.image.authors="Eduardo Silva <eduardo@calyptia.com>" `
+ org.opencontainers.image.url="https://hub.docker.com/r/fluent/fluent-bit" `
+ org.opencontainers.image.documentation="https://docs.fluentbit.io/manual/" `
+ org.opencontainers.image.vendor="Fluent Organization" `
+ org.opencontainers.image.licenses="Apache-2.0" `
+ org.opencontainers.image.source="https://github.com/fluent/fluent-bit" `
+ org.opencontainers.image.revision=$IMAGE_SOURCE_REVISION
+
+COPY --from=builder /fluent-bit /fluent-bit
+
+RUN setx /M PATH "%PATH%;C:\fluent-bit\bin"
+
+ENTRYPOINT [ "fluent-bit.exe" ]
+# Hadolint gets confused by Windows it seems
+# hadolint ignore=DL3025
+CMD [ "fluent-bit.exe", "-c", "/fluent-bit/etc/fluent-bit.conf" ]
diff --git a/fluent-bit/dockerfiles/README.md b/fluent-bit/dockerfiles/README.md
new file mode 100644
index 00000000..b83aa8b4
--- /dev/null
+++ b/fluent-bit/dockerfiles/README.md
@@ -0,0 +1,119 @@
+# Fluent Bit Docker Image
+
+[Fluent Bit](https://fluentbit.io) container images are available on Docker Hub ready for production usage.
+
+The stable AMD64 images are based on [Distroless](https://github.com/GoogleContainerTools/distroless) focusing on security containing just the Fluent Bit binary, minimal system libraries and basic configuration.
+
+Optionally, we provide debug images which contain shells and tooling that can be used to troubleshoot or for testing purposes.
+
+There are also images for ARM32 and ARM64 architectures but no debug versions of these.
+
+For a detailed list of installation, usage and versions available, please refer to the the official documentation: https://docs.fluentbit.io/manual/installation/docker
+
+## Multiple architecture support
+
+A good introduction to the available approaches is here: https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
+
+To build for multiple architectures the [QEMU tooling](https://www.qemu.org/) can be used with the [BuildKit extension for Docker](https://docs.docker.com/buildx/working-with-buildx).
+
+With QEMU set up and buildkit support, you can build all targets in one simple call.
+
+To set up for Ubuntu 20.04 development PC as an example:
+
+1. Add QEMU: https://askubuntu.com/a/1369504
+```
+sudo add-apt-repository ppa:jacob/virtualisation
+sudo apt-get update && sudo apt-get install qemu qemu-user qemu-user-static
+```
+2. Install buildkit: https://docs.docker.com/buildx/working-with-buildx/#install
+```
+wget https://github.com/docker/buildx/releases/download/v0.7.1/buildx-v0.7.1.linux-amd64
+mv buildx-v0.7.1.linux-amd64 ~/.docker/cli-plugins/docker-buildx
+chmod a+x ~/.docker/cli-plugins/docker-buildx
+```
+3. Configure and use: https://stackoverflow.com/a/60667468
+```
+docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
+docker buildx rm builder
+docker buildx create --name builder --use
+docker buildx inspect --bootstrap
+```
+4. Build Fluent Bit from the **root of the Git repo (not from this directory)**:
+```
+docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" --target=production -f dockerfiles/Dockerfile .
+```
+
+## Build and test
+
+1. Checkout the branch you want, e.g. 1.8 for 1.8.X containers.
+2. Build Fluent Bit from the **root of the Git repo (not from this directory)**:
+```
+$ docker build -t fluent/fluent-bit --target=production -f dockerfiles/Dockerfile .
+```
+3. Test the container.
+```
+$ docker run --rm -it fluent/fluent-bit:latest
+```
+
+By default, the configuration uses the CPU input plugin and the stdout output plugin which means you should see regular output in the log showing the CPU loading.
+
+```
+Fluent Bit v1.8.11
+* Copyright (C) 2019-2021 The Fluent Bit Authors
+* Copyright (C) 2015-2018 Treasure Data
+* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
+* https://fluentbit.io
+
+[2022/01/13 14:48:44] [ info] [engine] started (pid=1)
+[2022/01/13 14:48:44] [ info] [storage] version=1.1.5, initializing...
+[2022/01/13 14:48:44] [ info] [storage] in-memory
+[2022/01/13 14:48:44] [ info] [storage] normal synchronization mode, checksum disabled, max_chunks_up=128
+[2022/01/13 14:48:44] [ info] [cmetrics] version=0.2.2
+[2022/01/13 14:48:44] [ info] [sp] stream processor started
+[0] cpu.local: [1642085324.503383520, {"cpu_p"=>0.437500, "user_p"=>0.250000, "system_p"=>0.187500, "cpu0.p_cpu"=>0.000000, "cpu0.p_user"=>0.000000, "cpu0.p_system"=>0.000000, "cpu1.p_cpu"=>0.000000, "cpu1.p_user"=>0.000000, "cpu1.p_system"=>0.000000, "cpu2.p_cpu"=>1.000000, "cpu2.p_user"=>1.000000, "cpu2.p_system"=>0.000000, "cpu3.p_cpu"=>1.000000, "cpu3.p_user"=>1.000000, "cpu3.p_system"=>0.000000, "cpu4.p_cpu"=>1.000000, "cpu4.p_user"=>1.000000, "cpu4.p_system"=>0.000000, "cpu5.p_cpu"=>1.000000, "cpu5.p_user"=>0.000000, "cpu5.p_system"=>1.000000, "cpu6.p_cpu"=>0.000000, "cpu6.p_user"=>0.000000, "cpu6.p_system"=>0.000000, "cpu7.p_cpu"=>0.000000, "cpu7.p_user"=>0.000000, "cpu7.p_system"=>0.000000, "cpu8.p_cpu"=>2.000000, "cpu8.p_user"=>1.000000, "cpu8.p_system"=>1.000000, "cpu9.p_cpu"=>1.000000, "cpu9.p_user"=>1.000000, "cpu9.p_system"=>0.000000, "cpu10.p_cpu"=>0.000000, "cpu10.p_user"=>0.000000, "cpu10.p_system"=>0.000000, "cpu11.p_cpu"=>0.000000, "cpu11.p_user"=>0.000000, "cpu11.p_system"=>0.000000, "cpu12.p_cpu"=>0.000000, "cpu12.p_user"=>0.000000, "cpu12.p_system"=>0.000000, "cpu13.p_cpu"=>0.000000, "cpu13.p_user"=>0.000000, "cpu13.p_system"=>0.000000, "cpu14.p_cpu"=>2.000000, "cpu14.p_user"=>1.000000, "cpu14.p_system"=>1.000000, "cpu15.p_cpu"=>0.000000, "cpu15.p_user"=>0.000000, "cpu15.p_system"=>0.000000}]
+```
+
+## ghcr.io topology
+
+Containers are "staged" prior to release in the following ways to `ghcr.io`:
+* `ghcr.io/fluent/fluent-bit` - official releases, identical to DockerHub
+* `ghcr.io/fluent/fluent-bit/staging` - all architectures staging images used for testing prior to release
+* `ghcr.io/fluent/fluent-bit/master` - x86_64/AMD64 only images built on each push to master, used for integration tests
+* `ghcr.io/fluent/fluent-bit/pr-X` - x86_64/AMD64 only PR images where `X` is the PR number
+
+## Windows
+
+**The minimum version of fluent-bit supported is `1.3.7`.**
+
+The Windows version can be specified when building the Windows image. The instructions below leverage the **Windows Server Core 2019 - 1809/ltsc2019** base image. The large Windows Server Core base image is leveraged as the builder, while the smaller Windows Nano base image is leveraged for the final runtime image.
+
+More information is available at:
+
+- [Windows Container Base Images](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-base-images)
+- [Windows Container Version Compatibility](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2019%2Cwindows-10-1909#tabpanel_CeZOj-G++Q_windows-server-2019)
+
+In addition, metadata as defined in OCI image spec annotations, is leveraged in the generated image. This is the reason for the additional `--build-arg` parameters.
+
+### Minimum set of build-args
+```powershell
+docker build --no-cache `
+ --build-arg WINDOWS_VERSION=ltsc2019 `
+ -t fluent/fluent-bit:master-windows -f ./dockerfiles/Dockerfile.windows .
+```
+
+## Contact
+
+Feel free to join us on our Mailing List or IRC:
+
+ - Slack: http://slack.fluentd.org / channel #fluent-bit
+ - Mailing List: https://groups.google.com/forum/#!forum/fluent-bit
+ - IRC: irc.freenode.net #fluent-bit
+ - Twitter: http://twitter.com/fluentbit
+
+## License
+
+This program is under the terms of the [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0).
+
+## Authors
+
+[Fluent Bit](http://fluentbit.io) is made and sponsored by [Treasure Data](http://treasuredata.com) among other [contributors](https://github.com/fluent/fluent-bit/graphs/contributors).
diff --git a/fluent-bit/dockerfiles/dockerhub-description.md b/fluent-bit/dockerfiles/dockerhub-description.md
new file mode 100644
index 00000000..f96dec4c
--- /dev/null
+++ b/fluent-bit/dockerfiles/dockerhub-description.md
@@ -0,0 +1,71 @@
+# Fluent Bit
+
+[Fluent Bit](https://fluentbit.io/) is a lightweight and high performance log processor.
+In this repository you will find the container images ready for production usage.
+Our stable images are based in [Distroless](https://github.com/GoogleContainerTools/distroless) focusing on security containing just the Fluent Bit binary, minimal system libraries and basic configuration.
+
+Optionally, we provide debug images which contain shells and tooling that can be used to troubleshoot or for testing purposes.
+
+For a detailed list of tags and versions available, please refer to the the official documentation:
+
+<https://docs.fluentbit.io/manual/installation/docker>
+
+## Getting Started
+
+Run a Fluent Bit instance that will receive messages over TCP port 24224 through the [Forward](https://docs.fluentbit.io/manual/pipeline/outputs/forward) protocol, and send the messages to the STDOUT interface in JSON format every second:
+
+```shell
+docker run -p 127.0.0.1:24224:24224 fluent/fluent-bit /fluent-bit/bin/fluent-bit -i forward -o stdout -p format=json_lines -f 1
+```
+
+Now run a separate container that will send a test message.
+This time the Docker container will use the Fluent Forward Protocol as the logging driver:
+
+```shell
+docker run --log-driver=fluentd -t ubuntu echo "Testing a log message"
+```
+
+On Fluent Bit container, it will print to stdout something like this:
+
+```shell
+Fluent Bit v1.9.8
+* Copyright (C) 2015-2022 The Fluent Bit Authors
+* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
+* https://fluentbit.io
+
+[2022/09/16 10:03:48] [ info] [fluent bit] version=1.9.8, commit=97a5e9dcf3, pid=1
+[2022/09/16 10:03:48] [ info] [storage] version=1.2.0, type=memory-only, sync=normal, checksum=disabled, max_chunks_up=128
+[2022/09/16 10:03:48] [ info] [cmetrics] version=0.3.6
+[2022/09/16 10:03:48] [ info] [input:forward:forward.0] listening on 0.0.0.0:24224
+[2022/09/16 10:03:48] [ info] [sp] stream processor started
+[2022/09/16 10:03:48] [ info] [output:stdout:stdout.0] worker #0 started
+{"date":1663322636.0,"source":"stdout","log":"Testing a log message\r","container_id":"e29e02e84ffa00116818a86f6f99305a7d0f77f25420eceeb9206b725f137af4","container_name":"/intelligent_austin"}
+```
+
+## Dockerfile
+
+Refer to the definition in the source repository: <https://github.com/fluent/fluent-bit/blob/master/dockerfiles/Dockerfile>.
+
+The container is built according to the instructions here: <https://github.com/fluent/fluent-bit/tree/master/dockerfiles>.
+
+## Contact
+
+Feel free to contact us through the following community channels:
+
+- Slack: <https://slack.fluentd.org> / channel #fluent-bit
+- Github: <https://github.com/fluent/fluent-bit>
+- Twitter: <https://twitter.com/fluentbit>
+
+## Fluent Bit & Fluentd
+
+[Fluent Bit](https://fluentbit.io/) is a [CNCF](https://cncf.io/) sub-project under the umbrella of [Fluentd](https://www.fluentd.org/).
+
+## License
+
+This program is under the terms of the [Apache License v2.0](http://www.apache.org/licenses/LICENSE-2.0).
+
+## Authors
+
+[Fluent Bit](https://fluentbit.io/) is a [CNCF](https://cncf.io/) sub-project under the umbrella of [Fluentd](https://www.fluentd.org/).
+
+Made with love by [many contributors](https://github.com/fluent/fluent-bit/graphs/contributors) :).