From d95a2935bf1ba1e053b9177d3dd0f5e93a5d1ba4 Mon Sep 17 00:00:00 2001 From: Yifan Xiong Date: Tue, 25 Nov 2025 18:51:49 -0800 Subject: [PATCH 1/2] Fix fluentd build on arm64 Fix fluentd build on arm64 by changing the arm64 alpine base image to multi-arch debian based image. --- src/fluentd/build/fluentd.k8s.dockerfile | 70 ++++++++++++------------ 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/src/fluentd/build/fluentd.k8s.dockerfile b/src/fluentd/build/fluentd.k8s.dockerfile index cb65155a..6c6706f0 100644 --- a/src/fluentd/build/fluentd.k8s.dockerfile +++ b/src/fluentd/build/fluentd.k8s.dockerfile @@ -1,50 +1,48 @@ -# Copyright (c) Microsoft Corporation -# All rights reserved. -# -# MIT License -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -# documentation files (the "Software"), to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and -# to permit persons to whom the Software is furnished to do so, subject to the following conditions: -# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING -# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. -FROM fluent/fluentd:v1.17.1-1.0 +FROM fluent/fluentd:v1.17.1-debian-1.0 USER root -RUN apk add --no-cache --update --virtual .build-deps \ - sudo build-base ruby-dev make gcc libc-dev postgresql-dev git \ - && apk add --no-cache libpq=16.10-r0 \ - && sudo gem install fluent-plugin-concat \ - && gem install fluent-plugin-parser-cri --no-document \ - && sudo gem install bundler -v 2.3.27 \ - && sudo gem install rake \ - && sudo gem install pg -v 1.5.9 \ - && sudo apk add ruby-bigdecimal +ENV LD_PRELOAD="" \ + DEBIAN_FRONTEND=noninteractive - RUN sudo apk update && sudo apk upgrade +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + ruby-dev \ + make \ + gcc \ + libc6-dev \ + libpq-dev \ + libpq5 \ + postgresql-client \ + git \ + ca-certificates + +RUN gem install fluent-plugin-concat && \ + gem install fluent-plugin-parser-cri --no-document && \ + gem install bundler -v 2.3.27 && \ + gem install rake && \ + gem install pg -v 1.5.9 && \ + gem install bigdecimal --no-document || true # Build fluent-plugin-pgjson from scratch # Original fluent-plugin-pgjson is from https://github.com/fluent-plugins-nursery/fluent-plugin-pgjson -# Original plugin cannot retry connecting when database connection is lost, +# Original plugin cannot retry connecting when database connection is lost, # and is not thread-safe. These two problems are fixed by modifying codes. COPY src/fluent-plugin-pgjson /fluent-plugin-pgjson RUN cd /fluent-plugin-pgjson && \ - git init && \ - git add . && \ - rake build && \ - gem install --local ./pkg/fluent-plugin-pgjson-1.0.0.gem && \ - rm -rf /fluent-plugin-pgjson + git init && \ + git add . && \ + rake build && \ + gem install --local ./pkg/fluent-plugin-pgjson-1.0.0.gem && \ + rm -rf /fluent-plugin-pgjson # cleanup -RUN sudo gem sources --clear-all \ - && apk del .build-deps \ - && rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem +RUN gem sources --clear-all && \ + rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem && \ + apt-get purge -y --auto-remove build-essential make gcc libc6-dev libpq-dev && \ + apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/* COPY build/fluent.conf /fluentd/etc/ From cd331955cf0e6a60e9f86cff96f91eeaa0ed4967 Mon Sep 17 00:00:00 2001 From: Yifan Xiong Date: Wed, 26 Nov 2025 13:31:16 -0800 Subject: [PATCH 2/2] Update Update. --- src/fluentd/build/fluentd.k8s.dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/fluentd/build/fluentd.k8s.dockerfile b/src/fluentd/build/fluentd.k8s.dockerfile index 6c6706f0..be48370d 100644 --- a/src/fluentd/build/fluentd.k8s.dockerfile +++ b/src/fluentd/build/fluentd.k8s.dockerfile @@ -4,6 +4,8 @@ FROM fluent/fluentd:v1.17.1-debian-1.0 USER root + +# workaround different system page sizes by disabling jemalloc ENV LD_PRELOAD="" \ DEBIAN_FRONTEND=noninteractive @@ -25,7 +27,7 @@ RUN gem install fluent-plugin-concat && \ gem install bundler -v 2.3.27 && \ gem install rake && \ gem install pg -v 1.5.9 && \ - gem install bigdecimal --no-document || true + gem install bigdecimal --no-document # Build fluent-plugin-pgjson from scratch # Original fluent-plugin-pgjson is from https://github.com/fluent-plugins-nursery/fluent-plugin-pgjson @@ -43,6 +45,6 @@ RUN cd /fluent-plugin-pgjson && \ RUN gem sources --clear-all && \ rm -rf /tmp/* /var/tmp/* /usr/lib/ruby/gems/*/cache/*.gem && \ apt-get purge -y --auto-remove build-essential make gcc libc6-dev libpq-dev && \ - apt-get update && apt-get upgrade -y && rm -rf /var/lib/apt/lists/* + apt-get upgrade -y && rm -rf /var/lib/apt/lists/* COPY build/fluent.conf /fluentd/etc/