diff options
Diffstat (limited to 'fluent-bit/dockerfiles')
-rw-r--r-- | fluent-bit/dockerfiles/Dockerfile | 238 | ||||
-rw-r--r-- | fluent-bit/dockerfiles/Dockerfile.centos7 | 28 | ||||
-rw-r--r-- | fluent-bit/dockerfiles/Dockerfile.windows | 97 | ||||
-rw-r--r-- | fluent-bit/dockerfiles/README.md | 119 | ||||
-rw-r--r-- | fluent-bit/dockerfiles/dockerhub-description.md | 71 |
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) :). |