From 1f4564c3e0be807a0f39d0564895fb22399e1295 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:01:17 +0100 Subject: [PATCH 01/12] feat: add AlmaLinux 10 build Signed-off-by: Patrick Stephens --- custom/packaging/distros/almalinux/Dockerfile | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/custom/packaging/distros/almalinux/Dockerfile b/custom/packaging/distros/almalinux/Dockerfile index 5d4f62ee..3f4997ea 100644 --- a/custom/packaging/distros/almalinux/Dockerfile +++ b/custom/packaging/distros/almalinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # almalinux/8 base image -FROM almalinux:8 as almalinux-8-base +FROM almalinux:8 AS almalinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo @@ -25,7 +25,7 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:8 as almalinux-8.arm64v8-base +FROM --platform=arm64 almalinux:8 AS almalinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -44,7 +44,7 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM almalinux:9 as almalinux-9-base +FROM almalinux:9 AS almalinux-9-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo @@ -60,7 +60,42 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:9 as almalinux-9.arm64v8-base +FROM --platform=arm64 almalinux:9 AS almalinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM almalinux:10 AS almalinux-10-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# almalinux/8.arm64v8 base image +# hadolint ignore=DL3029 +FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -82,7 +117,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD From d5f092807f7d8ea1c3d567722d1aa339dc654bc7 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:04:17 +0100 Subject: [PATCH 02/12] feat: add CentOS Stream 10 build Signed-off-by: Patrick Stephens --- custom/packaging/distros/centos/Dockerfile | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/custom/packaging/distros/centos/Dockerfile b/custom/packaging/distros/centos/Dockerfile index 1c2978bd..5eb7a379 100644 --- a/custom/packaging/distros/centos/Dockerfile +++ b/custom/packaging/distros/centos/Dockerfile @@ -277,6 +277,79 @@ ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS +FROM quay.io/centos/centos:stream10 AS centos-10-base + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install epel-release && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel libgit2-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL +ARG FLB_UNICODE_ENCODER=On +ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER +ARG FLB_KAFKA=On +ENV FLB_KAFKA=$FLB_KAFKA +ARG FLB_PROCESSOR_DEDUP=On +ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP + +# hadolint ignore=DL3029 +FROM --platform=arm64 quay.io/centos/centos:stream10 AS centos-10.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install epel-release && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel libgit2-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL +ARG FLB_UNICODE_ENCODER=On +ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER +ARG FLB_KAFKA=On +ENV FLB_KAFKA=$FLB_KAFKA +ARG FLB_PROCESSOR_DEDUP=On +ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder From 423addc0d67c65ffbedea325d2f8f4f6a510ee51 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:06:17 +0100 Subject: [PATCH 03/12] feat: add Debian Trixie build Signed-off-by: Patrick Stephens --- custom/packaging/distros/debian/Dockerfile | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/custom/packaging/distros/debian/Dockerfile b/custom/packaging/distros/debian/Dockerfile index 0633c745..a0168412 100644 --- a/custom/packaging/distros/debian/Dockerfile +++ b/custom/packaging/distros/debian/Dockerfile @@ -169,6 +169,56 @@ RUN apt-get -qq update && \ ENV PATH="${CMAKE_HOME}/bin:${PATH}" +# debian/trixie base image +FROM debian:trixie-slim AS debian-trixie-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config libgit2-dev \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +# debian/trixie.arm64v8 base image +FROM arm64v8/debian:trixie-slim AS debian-trixie.arm64v8-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config libgit2-dev \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder From 1daa0d934994f9eb35fbaed79e29b5f8acfe8d5f Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:08:08 +0100 Subject: [PATCH 04/12] feat: add Rocky Linux 10 build Signed-off-by: Patrick Stephens --- .../packaging/distros/rockylinux/Dockerfile | 48 ++++++++++++++++--- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/custom/packaging/distros/rockylinux/Dockerfile b/custom/packaging/distros/rockylinux/Dockerfile index a4d841c5..35acda04 100644 --- a/custom/packaging/distros/rockylinux/Dockerfile +++ b/custom/packaging/distros/rockylinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # rockylinux/8 base image -FROM rockylinux:8 as rockylinux-8-base +FROM rockylinux/rockylinux:8 AS rockylinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo @@ -26,7 +26,7 @@ RUN yum -y update && \ # rockylinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:8 as rockylinux-8.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:8 AS rockylinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -46,7 +46,42 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM rockylinux:9 as rockylinux-9-base +FROM rockylinux/rockylinux:9 AS rockylinux-9-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# hadolint ignore=DL3029 +FROM --platform=arm64 rockylinux/rockylinux:9 AS rockylinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM rockylinux/rockylinux:10 AS rockylinux-10-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo @@ -60,9 +95,8 @@ RUN yum -y update && \ cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ yum clean all -# rockylinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:9 as rockylinux-9.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:10 AS rockylinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -84,7 +118,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD From e53dfc4f39613a62a956ca500cef461370a44a6b Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:09:05 +0100 Subject: [PATCH 05/12] fix: enable builds Signed-off-by: Patrick Stephens --- build-config.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/build-config.json b/build-config.json index f8a2ace8..5bd37a73 100644 --- a/build-config.json +++ b/build-config.json @@ -4,6 +4,8 @@ "almalinux/8.arm64v8", "almalinux/9", "almalinux/9.arm64v8", + "almalinux/10", + "almalinux/10.arm64v8", "amazonlinux/2023", "amazonlinux/2023.arm64v8", "centos/6", @@ -12,16 +14,22 @@ "centos/8.arm64v8", "centos/9", "centos/9.arm64v8", + "centos/10", + "centos/10.arm64v8", "rockylinux/8", "rockylinux/8.arm64v8", "rockylinux/9", "rockylinux/9.arm64v8", + "rockylinux/10", + "rockylinux/10.arm64v8", "debian/buster", "debian/buster.arm64v8", "debian/bullseye", "debian/bullseye.arm64v8", "debian/bookworm", "debian/bookworm.arm64v8", + "debian/trixie", + "debian/trixie.arm64v8", "ubuntu/20.04", "ubuntu/20.04.arm64v8", "ubuntu/22.04", From 14da76384255ecfd431e8944f253d1a1fa8bffc3 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:10:22 +0100 Subject: [PATCH 06/12] fix: update source Signed-off-by: Patrick Stephens --- source/packaging/distros/almalinux/Dockerfile | 47 ++++++++++-- source/packaging/distros/centos/Dockerfile | 73 +++++++++++++++++++ source/packaging/distros/debian/Dockerfile | 50 +++++++++++++ .../packaging/distros/rockylinux/Dockerfile | 48 ++++++++++-- 4 files changed, 205 insertions(+), 13 deletions(-) diff --git a/source/packaging/distros/almalinux/Dockerfile b/source/packaging/distros/almalinux/Dockerfile index 5d4f62ee..3f4997ea 100644 --- a/source/packaging/distros/almalinux/Dockerfile +++ b/source/packaging/distros/almalinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # almalinux/8 base image -FROM almalinux:8 as almalinux-8-base +FROM almalinux:8 AS almalinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo @@ -25,7 +25,7 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:8 as almalinux-8.arm64v8-base +FROM --platform=arm64 almalinux:8 AS almalinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -44,7 +44,7 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM almalinux:9 as almalinux-9-base +FROM almalinux:9 AS almalinux-9-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo @@ -60,7 +60,42 @@ RUN yum -y update && \ # almalinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 almalinux:9 as almalinux-9.arm64v8-base +FROM --platform=arm64 almalinux:9 AS almalinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM almalinux:10 AS almalinux-10-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + yum clean all + +# almalinux/8.arm64v8 base image +# hadolint ignore=DL3029 +FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -82,7 +117,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD diff --git a/source/packaging/distros/centos/Dockerfile b/source/packaging/distros/centos/Dockerfile index 1c2978bd..5eb7a379 100644 --- a/source/packaging/distros/centos/Dockerfile +++ b/source/packaging/distros/centos/Dockerfile @@ -277,6 +277,79 @@ ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS +FROM quay.io/centos/centos:stream10 AS centos-10-base + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install epel-release && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel libgit2-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL +ARG FLB_UNICODE_ENCODER=On +ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER +ARG FLB_KAFKA=On +ENV FLB_KAFKA=$FLB_KAFKA +ARG FLB_PROCESSOR_DEDUP=On +ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP + +# hadolint ignore=DL3029 +FROM --platform=arm64 quay.io/centos/centos:stream10 AS centos-10.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ENV CMAKE_HOME="/opt/cmake" +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# Add for the YAML development libraries +# hadolint ignore=DL3033,DL3041 +RUN dnf -y install 'dnf-command(config-manager)' && dnf -y config-manager --set-enabled crb && \ + dnf -y install epel-release && \ + dnf -y install rpm-build ca-certificates gcc gcc-c++ make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib cyrus-sasl-devel openssl openssl-libs openssl-devel libcurl-devel pkgconf-pkg-config \ + libyaml-devel zlib-devel libgit2-devel \ + tar gzip && \ + dnf clean all && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +ARG FLB_OUT_PGSQL=On +ENV FLB_OUT_PGSQL=$FLB_OUT_PGSQL +ARG FLB_UNICODE_ENCODER=On +ENV FLB_UNICODE_ENCODER=$FLB_UNICODE_ENCODER +ARG FLB_KAFKA=On +ENV FLB_KAFKA=$FLB_KAFKA +ARG FLB_PROCESSOR_DEDUP=On +ENV FLB_PROCESSOR_DEDUP=$FLB_PROCESSOR_DEDUP + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder diff --git a/source/packaging/distros/debian/Dockerfile b/source/packaging/distros/debian/Dockerfile index 0633c745..a0168412 100644 --- a/source/packaging/distros/debian/Dockerfile +++ b/source/packaging/distros/debian/Dockerfile @@ -169,6 +169,56 @@ RUN apt-get -qq update && \ ENV PATH="${CMAKE_HOME}/bin:${PATH}" +# debian/trixie base image +FROM debian:trixie-slim AS debian-trixie-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config libgit2-dev \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +# debian/trixie.arm64v8 base image +FROM arm64v8/debian:trixie-slim AS debian-trixie.arm64v8-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config libgit2-dev \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder diff --git a/source/packaging/distros/rockylinux/Dockerfile b/source/packaging/distros/rockylinux/Dockerfile index a4d841c5..35acda04 100644 --- a/source/packaging/distros/rockylinux/Dockerfile +++ b/source/packaging/distros/rockylinux/Dockerfile @@ -7,10 +7,10 @@ ARG BASE_BUILDER # Use buildkit to skip unused base images: DOCKER_BUILDKIT=1 # Multiarch support -FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64 +FROM multiarch/qemu-user-static:x86_64-aarch64 AS multiarch-aarch64 # rockylinux/8 base image -FROM rockylinux:8 as rockylinux-8-base +FROM rockylinux/rockylinux:8 AS rockylinux-8-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo @@ -26,7 +26,7 @@ RUN yum -y update && \ # rockylinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:8 as rockylinux-8.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:8 AS rockylinux-8.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -46,7 +46,42 @@ RUN yum -y update && \ ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS -FROM rockylinux:9 as rockylinux-9-base +FROM rockylinux/rockylinux:9 AS rockylinux-9-base + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# hadolint ignore=DL3029 +FROM --platform=arm64 rockylinux/rockylinux:9 AS rockylinux-9.arm64v8-base + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +# Add for the YAML development libraries +RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo + +# hadolint ignore=DL3033 +RUN yum -y update && \ + yum install -y epel-release && \ + yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ + wget unzip systemd-devel wget flex bison \ + postgresql-libs postgresql-devel postgresql-server postgresql \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ + yum clean all + +# Need larger page size +ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3" +ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS + +FROM rockylinux/rockylinux:10 AS rockylinux-10-base # Add for the YAML development libraries RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo @@ -60,9 +95,8 @@ RUN yum -y update && \ cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ yum clean all -# rockylinux/8.arm64v8 base image # hadolint ignore=DL3029 -FROM --platform=arm64 rockylinux:9 as rockylinux-9.arm64v8-base +FROM --platform=arm64 rockylinux/rockylinux:10 AS rockylinux-10.arm64v8-base COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static @@ -84,7 +118,7 @@ ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS # Common build for all distributions now # hadolint ignore=DL3006 -FROM $BASE_BUILDER as builder +FROM $BASE_BUILDER AS builder ARG FLB_NIGHTLY_BUILD ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD From 60b06685cd013a4b39da7ea0a341dcd23735257b Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Fri, 3 Oct 2025 16:17:48 +0100 Subject: [PATCH 07/12] ci: ensure we log into docker.io Signed-off-by: Patrick Stephens --- .github/workflows/call-build-containers.yaml | 6 ++++++ .github/workflows/call-build-linux-packages.yaml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/.github/workflows/call-build-containers.yaml b/.github/workflows/call-build-containers.yaml index 9e58cd84..6850ed39 100644 --- a/.github/workflows/call-build-containers.yaml +++ b/.github/workflows/call-build-containers.yaml @@ -69,6 +69,12 @@ jobs: # - name: Set up Docker Buildx # uses: docker/setup-buildx-action@v3 + - name: Log in to docker.io for authorised pulls + uses: docker/login-action@v3 + with: + username: ${{ vars.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Log in to the Container registry uses: docker/login-action@v3 with: diff --git a/.github/workflows/call-build-linux-packages.yaml b/.github/workflows/call-build-linux-packages.yaml index f9b1ca8f..a702e2a9 100644 --- a/.github/workflows/call-build-linux-packages.yaml +++ b/.github/workflows/call-build-linux-packages.yaml @@ -51,6 +51,12 @@ jobs: replace-with: "$1-$2" flags: "g" + - name: Log in to docker.io for authorised pulls + uses: docker/login-action@v3 + with: + username: ${{ vars.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Log in to the GHCR registry uses: docker/login-action@v3 with: From 0506199ad8bf1ee3e66a0b57e1bc17bd71ef51ab Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Sun, 5 Oct 2025 12:31:05 +0100 Subject: [PATCH 08/12] feat: add release-specific targets Signed-off-by: Patrick Stephens --- .github/workflows/build.yaml | 13 +++++++--- build-config.json | 28 +++++++++++++++++++++ custom/packaging/distros/mariner/Dockerfile | 16 ------------ source/packaging/distros/mariner/Dockerfile | 16 ------------ 4 files changed, 37 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1e4c01b8..823ca429 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,7 +28,8 @@ jobs: outputs: build-type: ${{ steps.set-build-type.outputs.build-type }} date: ${{ steps.set-meta.outputs.date }} - linux-targets: ${{ steps.set-meta.outputs.linux-targets }} + # For PRs we can build for all possible targets but we use a reduced set for main/releases to keep costs/time down + linux-targets: ${{ github.event_name == 'pull_request' && steps.set-meta.outputs.pr-linux-targets || steps.set-meta.outputs.main-linux-targets }} version: ${{ steps.set-version.outputs.version }} oss-version: ${{ steps.set-oss-version.outputs.oss-version }} steps: @@ -77,9 +78,13 @@ jobs: # Read from the file and remove newline characters: https://stackoverflow.com/a/64627966 id: set-meta run: | - LINUX_TARGETS=$(cat "$JSON_FILE_NAME"|jq -c .linux_targets ) - echo "linux-targets=$LINUX_TARGETS" - echo "linux-targets=$LINUX_TARGETS" >> $GITHUB_OUTPUT + PR_LINUX_TARGETS=$(cat "$JSON_FILE_NAME"|jq -c .linux_targets ) + echo "pr-linux-targets=$PR_LINUX_TARGETS" + echo "pr-linux-targets=$PR_LINUX_TARGETS" >> $GITHUB_OUTPUT + + MAIN_LINUX_TARGETS=$(cat "$JSON_FILE_NAME"|jq -c .release.linux_targets ) + echo "main-linux-targets=$MAIN_LINUX_TARGETS" + echo "main-linux-targets=$MAIN_LINUX_TARGETS" >> $GITHUB_OUTPUT shell: bash env: JSON_FILE_NAME: build-config.json diff --git a/build-config.json b/build-config.json index 5bd37a73..2cde34c6 100644 --- a/build-config.json +++ b/build-config.json @@ -16,6 +16,8 @@ "centos/9.arm64v8", "centos/10", "centos/10.arm64v8", + "mariner/2", + "mariner/2.arm64v8", "rockylinux/8", "rockylinux/8.arm64v8", "rockylinux/9", @@ -39,6 +41,32 @@ "suse/15", "suse/15.arm64v8" ], + "release": { + "linux_targets": [ + "amazonlinux/2023", + "amazonlinux/2023.arm64v8", + "centos/6", + "centos/7", + "centos/10", + "centos/10.arm64v8", + "rockylinux/8", + "rockylinux/8.arm64v8", + "rockylinux/9", + "rockylinux/9.arm64v8", + "rockylinux/10", + "rockylinux/10.arm64v8", + "debian/bookworm", + "debian/bookworm.arm64v8", + "debian/trixie", + "debian/trixie.arm64v8", + "ubuntu/22.04", + "ubuntu/22.04.arm64v8", + "ubuntu/24.04", + "ubuntu/24.04.arm64v8", + "suse/15", + "suse/15.arm64v8" + ] + }, "kind_versions": [ "v1.31.12", "v1.32.8", diff --git a/custom/packaging/distros/mariner/Dockerfile b/custom/packaging/distros/mariner/Dockerfile index 2ea6b611..6f6e6b68 100644 --- a/custom/packaging/distros/mariner/Dockerfile +++ b/custom/packaging/distros/mariner/Dockerfile @@ -43,28 +43,12 @@ WORKDIR /source/fluent-bit/build/ ARG CFLAGS ARG CMAKE_INSTALL_PREFIX=/opt/fluent-do-agent/ ARG CMAKE_INSTALL_SYSCONFDIR=/etc/ -ARG FLB_TD=Off -ARG FLB_RELEASE=On -ARG FLB_TRACE=On -ARG FLB_SQLDB=On -ARG FLB_HTTP_SERVER=On -ARG FLB_OUT_KAFKA=On -ARG FLB_JEMALLOC=On -ARG FLB_OUT_PGSQL=On RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \ -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \ - -DFLB_RELEASE="$FLB_RELEASE" \ - -DFLB_TRACE="$FLB_TRACE" \ - -DFLB_TD="$FLB_TD" \ - -DFLB_SQLDB="$FLB_SQLDB" \ - -DFLB_HTTP_SERVER="$FLB_HTTP_SERVER" \ - -DFLB_OUT_KAFKA="$FLB_OUT_KAFKA" \ - -DFLB_OUT_PGSQL="$FLB_OUT_PGSQL" \ -DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \ -DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \ - -DFLB_JEMALLOC="${FLB_JEMALLOC}" \ ../ VOLUME [ "/output" ] diff --git a/source/packaging/distros/mariner/Dockerfile b/source/packaging/distros/mariner/Dockerfile index 2ea6b611..6f6e6b68 100644 --- a/source/packaging/distros/mariner/Dockerfile +++ b/source/packaging/distros/mariner/Dockerfile @@ -43,28 +43,12 @@ WORKDIR /source/fluent-bit/build/ ARG CFLAGS ARG CMAKE_INSTALL_PREFIX=/opt/fluent-do-agent/ ARG CMAKE_INSTALL_SYSCONFDIR=/etc/ -ARG FLB_TD=Off -ARG FLB_RELEASE=On -ARG FLB_TRACE=On -ARG FLB_SQLDB=On -ARG FLB_HTTP_SERVER=On -ARG FLB_OUT_KAFKA=On -ARG FLB_JEMALLOC=On -ARG FLB_OUT_PGSQL=On RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \ -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \ - -DFLB_RELEASE="$FLB_RELEASE" \ - -DFLB_TRACE="$FLB_TRACE" \ - -DFLB_TD="$FLB_TD" \ - -DFLB_SQLDB="$FLB_SQLDB" \ - -DFLB_HTTP_SERVER="$FLB_HTTP_SERVER" \ - -DFLB_OUT_KAFKA="$FLB_OUT_KAFKA" \ - -DFLB_OUT_PGSQL="$FLB_OUT_PGSQL" \ -DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \ -DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \ - -DFLB_JEMALLOC="${FLB_JEMALLOC}" \ ../ VOLUME [ "/output" ] From 21d852a9b05c0b49f5acaaf6f4db1a6567d5a22d Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Sun, 5 Oct 2025 12:47:23 +0100 Subject: [PATCH 09/12] ci: add DH inputs/secrets Signed-off-by: Patrick Stephens --- .github/workflows/build.yaml | 8 +++++++- .github/workflows/call-build-containers.yaml | 12 +++++++++-- .../workflows/call-build-linux-packages.yaml | 20 +++++++++++++++++-- 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 823ca429..31a9fa66 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -118,9 +118,12 @@ jobs: version: ${{ needs.get-meta.outputs.version }} ref: ${{ github.ref }} image-base: ${{ matrix.image-base }} - # Pick the Dockerfile to use for each image definition: ${{ (contains(matrix.image-base, 'debian') && 'Dockerfile.debian') || 'Dockerfile.ubi' }} + dockerhub-username: ${{ vars.DOCKERHUB_USERNAME }} + secrets: + dockerhub-token: ${{ secrets.DOCKERHUB_PUBLIC_READ_TOKEN }} + # We want to copy the UBI image to ghcr.io/fluentdo/agent:version and # the distroless image to ghcr.io/fluentdo/agent:version-slim @@ -214,6 +217,9 @@ jobs: ref: ${{ github.ref }} target-matrix: ${{ needs.get-meta.outputs.linux-targets }} nightly-build-info: ${{ needs.get-meta.outputs.date }} + dockerhub-username: ${{ vars.DOCKERHUB_USERNAME }} + secrets: + dockerhub-token: ${{ secrets.DOCKERHUB_PUBLIC_READ_TOKEN }} build-windows: # Only build Windows packages if we are not a pull request or have a label set diff --git a/.github/workflows/call-build-containers.yaml b/.github/workflows/call-build-containers.yaml index 6850ed39..fb402ba6 100644 --- a/.github/workflows/call-build-containers.yaml +++ b/.github/workflows/call-build-containers.yaml @@ -22,6 +22,11 @@ on: required: false type: string default: "Dockerfile.ubi" + dockerhub-username: + description: The Dockerhub username to use for authenticated pulls. + required: false + type: string + default: "fluentdo" secrets: cosign_private_key: description: The optional Cosign key to use for signing the images. @@ -29,6 +34,9 @@ on: cosign_private_key_password: description: If the Cosign key requires a password then specify here, otherwise not required. required: false + dockerhub-token: + description: The Dockerhub token to use for authenticated pulls (not pushes). + required: true outputs: tag: description: The full image name and tag. @@ -72,8 +80,8 @@ jobs: - name: Log in to docker.io for authorised pulls uses: docker/login-action@v3 with: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: ${{ inputs.dockerhub-username }} + password: ${{ secrets.dockerhub-token }} - name: Log in to the Container registry uses: docker/login-action@v3 diff --git a/.github/workflows/call-build-linux-packages.yaml b/.github/workflows/call-build-linux-packages.yaml index a702e2a9..add2daeb 100644 --- a/.github/workflows/call-build-linux-packages.yaml +++ b/.github/workflows/call-build-linux-packages.yaml @@ -17,6 +17,22 @@ on: required: false type: string default: "" + dockerhub-username: + description: The Dockerhub username to use for authenticated pulls. + required: false + type: string + default: "fluentdo" + + secrets: + gpg_private_key: + description: The optional GPG key to use for signing the packages. + required: false + gpg_private_key_password: + description: If the GPG key requires a password then specify here, otherwise not required. + required: false + dockerhub-token: + description: The Dockerhub token to use for authenticated pulls (not pushes). + required: true jobs: build-packages: name: agent - ${{ matrix.distro }} package build and upload @@ -54,8 +70,8 @@ jobs: - name: Log in to docker.io for authorised pulls uses: docker/login-action@v3 with: - username: ${{ vars.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + username: ${{ inputs.dockerhub-username }} + password: ${{ secrets.dockerhub-token }} - name: Log in to the GHCR registry uses: docker/login-action@v3 From 375ff9e0d42f2a4440709aff8e9cfaa3ca6d6211 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Sun, 5 Oct 2025 12:50:01 +0100 Subject: [PATCH 10/12] fix: invalid comment Signed-off-by: Patrick Stephens --- custom/packaging/distros/almalinux/Dockerfile | 1 - source/packaging/distros/almalinux/Dockerfile | 1 - 2 files changed, 2 deletions(-) diff --git a/custom/packaging/distros/almalinux/Dockerfile b/custom/packaging/distros/almalinux/Dockerfile index 3f4997ea..d7c5debf 100644 --- a/custom/packaging/distros/almalinux/Dockerfile +++ b/custom/packaging/distros/almalinux/Dockerfile @@ -93,7 +93,6 @@ RUN yum -y update && \ cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ yum clean all -# almalinux/8.arm64v8 base image # hadolint ignore=DL3029 FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base diff --git a/source/packaging/distros/almalinux/Dockerfile b/source/packaging/distros/almalinux/Dockerfile index 3f4997ea..d7c5debf 100644 --- a/source/packaging/distros/almalinux/Dockerfile +++ b/source/packaging/distros/almalinux/Dockerfile @@ -93,7 +93,6 @@ RUN yum -y update && \ cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ yum clean all -# almalinux/8.arm64v8 base image # hadolint ignore=DL3029 FROM --platform=arm64 almalinux:10 AS almalinux-10.arm64v8-base From 852db23354fe4cb893ba3c960a2be57000f180bf Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Sun, 5 Oct 2025 12:53:40 +0100 Subject: [PATCH 11/12] fix: ensure AlmaLinux uses epel-release Signed-off-by: Patrick Stephens --- .github/workflows/build.yaml | 5 ++++- custom/packaging/distros/almalinux/Dockerfile | 1 + source/packaging/distros/almalinux/Dockerfile | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 31a9fa66..ef016361 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -344,7 +344,10 @@ jobs: Version: ${{ needs.get-meta.outputs.version }} OSS Version: ${{ needs.get-meta.outputs.oss-version }} - Targets: ${{ needs.get-meta.outputs.linux-targets }} + Targets: + - Windows: 2022/2025 + - Linux: ${{ needs.get-meta.outputs.linux-targets }} + Images: - ${{ env.UBI_IMAGE_NAME }}:${{ env.TAG }} - ${{ env.DISTROLESS_IMAGE_NAME }}:${{ env.TAG }} diff --git a/custom/packaging/distros/almalinux/Dockerfile b/custom/packaging/distros/almalinux/Dockerfile index d7c5debf..8f8202ab 100644 --- a/custom/packaging/distros/almalinux/Dockerfile +++ b/custom/packaging/distros/almalinux/Dockerfile @@ -87,6 +87,7 @@ RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo # hadolint ignore=DL3033 RUN yum -y update && \ + yum install -y epel-release && \ yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ wget unzip systemd-devel wget flex bison \ postgresql-libs postgresql-devel postgresql-server postgresql \ diff --git a/source/packaging/distros/almalinux/Dockerfile b/source/packaging/distros/almalinux/Dockerfile index d7c5debf..8f8202ab 100644 --- a/source/packaging/distros/almalinux/Dockerfile +++ b/source/packaging/distros/almalinux/Dockerfile @@ -87,6 +87,7 @@ RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo # hadolint ignore=DL3033 RUN yum -y update && \ + yum install -y epel-release && \ yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ wget unzip systemd-devel wget flex bison \ postgresql-libs postgresql-devel postgresql-server postgresql \ From f10bce3fc894578d97c68c05868e3d27d2a251c2 Mon Sep 17 00:00:00 2001 From: Patrick Stephens Date: Sun, 5 Oct 2025 14:15:00 +0100 Subject: [PATCH 12/12] fix: missing Alma10 dep Signed-off-by: Patrick Stephens --- custom/packaging/distros/almalinux/Dockerfile | 2 +- source/packaging/distros/almalinux/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom/packaging/distros/almalinux/Dockerfile b/custom/packaging/distros/almalinux/Dockerfile index 8f8202ab..f5a13d23 100644 --- a/custom/packaging/distros/almalinux/Dockerfile +++ b/custom/packaging/distros/almalinux/Dockerfile @@ -91,7 +91,7 @@ RUN yum -y update && \ yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ wget unzip systemd-devel wget flex bison \ postgresql-libs postgresql-devel postgresql-server postgresql \ - cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ yum clean all # hadolint ignore=DL3029 diff --git a/source/packaging/distros/almalinux/Dockerfile b/source/packaging/distros/almalinux/Dockerfile index 8f8202ab..f5a13d23 100644 --- a/source/packaging/distros/almalinux/Dockerfile +++ b/source/packaging/distros/almalinux/Dockerfile @@ -91,7 +91,7 @@ RUN yum -y update && \ yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \ wget unzip systemd-devel wget flex bison \ postgresql-libs postgresql-devel postgresql-server postgresql \ - cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel pkgconf-pkg-config && \ + cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel libgit2-devel pkgconf-pkg-config && \ yum clean all # hadolint ignore=DL3029