Skip to content

Commit eaa4692

Browse files
packaging: add AlmaLinux and RockyLinux builds (#10336)
* packaging: add RockyLinux builds * packaging: add AlmaLinux builds Signed-off-by: Patrick Stephens <[email protected]>
1 parent f28e61e commit eaa4692

File tree

5 files changed

+287
-1
lines changed

5 files changed

+287
-1
lines changed

packaging/build-config.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,38 @@
4040
"target": "centos/9.arm64v8",
4141
"type": "rpm"
4242
},
43+
{
44+
"target": "rockylinux/8",
45+
"type": "rpm"
46+
},
47+
{
48+
"target": "rockylinux/8.arm64v8",
49+
"type": "rpm"
50+
},
51+
{
52+
"target": "rockylinux/9",
53+
"type": "rpm"
54+
},
55+
{
56+
"target": "rockylinux/9.arm64v8",
57+
"type": "rpm"
58+
},
59+
{
60+
"target": "almalinux/8",
61+
"type": "rpm"
62+
},
63+
{
64+
"target": "almalinux/8.arm64v8",
65+
"type": "rpm"
66+
},
67+
{
68+
"target": "almalinux/9",
69+
"type": "rpm"
70+
},
71+
{
72+
"target": "almalinux/9.arm64v8",
73+
"type": "rpm"
74+
},
4375
{
4476
"target": "debian/bookworm",
4577
"type": "deb"
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Special Dockerfile to build all targets, the only difference is
2+
# the packages in the base image.
3+
# Set this to the base image to use in each case, so if we want to build for almalinux/8
4+
# we would set BASE_BUILDER=almalinux-8-base.
5+
ARG BASE_BUILDER
6+
# Lookup the name to use below but should follow the '<distro>-base' convention with slashes replaced.
7+
# Use buildkit to skip unused base images: DOCKER_BUILDKIT=1
8+
9+
# Multiarch support
10+
FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64
11+
12+
# almalinux/8 base image
13+
FROM almalinux:8 as almalinux-8-base
14+
15+
# Add for the YAML development libraries
16+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo
17+
18+
# hadolint ignore=DL3033
19+
RUN yum -y update && \
20+
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
21+
wget unzip systemd-devel wget flex bison \
22+
postgresql-libs postgresql-devel postgresql-server postgresql \
23+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
24+
yum clean all
25+
26+
# almalinux/8.arm64v8 base image
27+
# hadolint ignore=DL3029
28+
FROM --platform=arm64 almalinux:8 as almalinux-8.arm64v8-base
29+
30+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
31+
32+
# Add for the YAML development libraries
33+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-powertools.repo
34+
35+
# hadolint ignore=DL3033
36+
RUN yum -y update && \
37+
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
38+
wget unzip systemd-devel wget flex bison \
39+
postgresql-libs postgresql-devel postgresql-server postgresql \
40+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
41+
yum clean all
42+
43+
# Need larger page size
44+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
45+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
46+
47+
FROM almalinux:9 as almalinux-9-base
48+
49+
# Add for the YAML development libraries
50+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo
51+
52+
# hadolint ignore=DL3033
53+
RUN yum -y update && \
54+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
55+
wget unzip systemd-devel wget flex bison \
56+
postgresql-libs postgresql-devel postgresql-server postgresql \
57+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
58+
yum clean all
59+
60+
# almalinux/8.arm64v8 base image
61+
# hadolint ignore=DL3029
62+
FROM --platform=arm64 almalinux:9 as almalinux-9.arm64v8-base
63+
64+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
65+
66+
# Add for the YAML development libraries
67+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/almalinux-crb.repo
68+
69+
# hadolint ignore=DL3033
70+
RUN yum -y update && \
71+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
72+
wget unzip systemd-devel wget flex bison \
73+
postgresql-libs postgresql-devel postgresql-server postgresql \
74+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
75+
yum clean all
76+
77+
# Need larger page size
78+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
79+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80+
81+
# Common build for all distributions now
82+
# hadolint ignore=DL3006
83+
FROM $BASE_BUILDER as builder
84+
85+
ARG FLB_NIGHTLY_BUILD
86+
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD
87+
88+
# Docker context must be the base of the repo
89+
WORKDIR /source/fluent-bit/
90+
COPY . ./
91+
92+
WORKDIR /source/fluent-bit/build/
93+
# CMake configuration variables
94+
# Unused
95+
ARG CFLAGS
96+
ARG CMAKE_INSTALL_PREFIX=/opt/fluent-bit/
97+
ARG CMAKE_INSTALL_SYSCONFDIR=/etc/
98+
ARG FLB_RELEASE=On
99+
ARG FLB_TRACE=On
100+
ARG FLB_SQLDB=On
101+
ARG FLB_HTTP_SERVER=On
102+
ARG FLB_OUT_KAFKA=On
103+
ARG FLB_JEMALLOC=On
104+
ARG FLB_CHUNK_TRACE=On
105+
ARG FLB_UNICODE_ENCODER=On
106+
ARG FLB_KAFKA=On
107+
ARG FLB_OUT_PGSQL=On
108+
109+
RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
110+
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
111+
-DFLB_RELEASE="$FLB_RELEASE" \
112+
-DFLB_TRACE="$FLB_TRACE" \
113+
-DFLB_SQLDB="$FLB_SQLDB" \
114+
-DFLB_HTTP_SERVER="$FLB_HTTP_SERVER" \
115+
-DFLB_KAFKA="$FLB_KAFKA" \
116+
-DFLB_OUT_PGSQL="$FLB_OUT_PGSQL" \
117+
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
118+
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
119+
-DFLB_JEMALLOC="${FLB_JEMALLOC}" \
120+
-DFLB_CHUNK_TRACE="${FLB_CHUNK_TRACE}" \
121+
-DFLB_UNICODE_ENCODER="${FLB_UNICODE_ENCODER}" \
122+
../
123+
124+
VOLUME [ "/output" ]
125+
CMD [ "/bin/bash", "-c", "make --no-print-directory -j 4 && cpack3 -G RPM && cp *.rpm /output/" ]
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Special Dockerfile to build all targets, the only difference is
2+
# the packages in the base image.
3+
# Set this to the base image to use in each case, so if we want to build for rockylinux/8
4+
# we would set BASE_BUILDER=rockylinux-8-base.
5+
ARG BASE_BUILDER
6+
# Lookup the name to use below but should follow the '<distro>-base' convention with slashes replaced.
7+
# Use buildkit to skip unused base images: DOCKER_BUILDKIT=1
8+
9+
# Multiarch support
10+
FROM multiarch/qemu-user-static:x86_64-aarch64 as multiarch-aarch64
11+
12+
# rockylinux/8 base image
13+
FROM rockylinux:8 as rockylinux-8-base
14+
15+
# Add for the YAML development libraries
16+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo
17+
18+
# hadolint ignore=DL3033
19+
RUN yum -y update && \
20+
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
21+
wget unzip systemd-devel wget flex bison \
22+
postgresql-libs postgresql-devel postgresql-server postgresql \
23+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
24+
yum clean all
25+
26+
# rockylinux/8.arm64v8 base image
27+
# hadolint ignore=DL3029
28+
FROM --platform=arm64 rockylinux:8 as rockylinux-8.arm64v8-base
29+
30+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
31+
32+
# Add for the YAML development libraries
33+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/Rocky-PowerTools.repo
34+
35+
# hadolint ignore=DL3033
36+
RUN yum -y update && \
37+
yum install -y rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
38+
wget unzip systemd-devel wget flex bison \
39+
postgresql-libs postgresql-devel postgresql-server postgresql \
40+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
41+
yum clean all
42+
43+
# Need larger page size
44+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
45+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
46+
47+
FROM rockylinux:9 as rockylinux-9-base
48+
49+
# Add for the YAML development libraries
50+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo
51+
52+
# hadolint ignore=DL3033
53+
RUN yum -y update && \
54+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
55+
wget unzip systemd-devel wget flex bison \
56+
postgresql-libs postgresql-devel postgresql-server postgresql \
57+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
58+
yum clean all
59+
60+
# rockylinux/8.arm64v8 base image
61+
# hadolint ignore=DL3029
62+
FROM --platform=arm64 rockylinux:9 as rockylinux-9.arm64v8-base
63+
64+
COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static
65+
66+
# Add for the YAML development libraries
67+
RUN sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/rocky-devel.repo
68+
69+
# hadolint ignore=DL3033
70+
RUN yum -y update && \
71+
yum install -y --allowerasing rpm-build curl ca-certificates gcc gcc-c++ cmake make bash \
72+
wget unzip systemd-devel wget flex bison \
73+
postgresql-libs postgresql-devel postgresql-server postgresql \
74+
cyrus-sasl-lib openssl openssl-libs openssl-devel libyaml-devel && \
75+
yum clean all
76+
77+
# Need larger page size
78+
ARG FLB_JEMALLOC_OPTIONS="--with-lg-page=16 --with-lg-quantum=3"
79+
ENV FLB_JEMALLOC_OPTIONS=$FLB_JEMALLOC_OPTIONS
80+
81+
# Common build for all distributions now
82+
# hadolint ignore=DL3006
83+
FROM $BASE_BUILDER as builder
84+
85+
ARG FLB_NIGHTLY_BUILD
86+
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD
87+
88+
# Docker context must be the base of the repo
89+
WORKDIR /source/fluent-bit/
90+
COPY . ./
91+
92+
WORKDIR /source/fluent-bit/build/
93+
# CMake configuration variables
94+
# Unused
95+
ARG CFLAGS
96+
ARG CMAKE_INSTALL_PREFIX=/opt/fluent-bit/
97+
ARG CMAKE_INSTALL_SYSCONFDIR=/etc/
98+
ARG FLB_RELEASE=On
99+
ARG FLB_TRACE=On
100+
ARG FLB_SQLDB=On
101+
ARG FLB_HTTP_SERVER=On
102+
ARG FLB_OUT_KAFKA=On
103+
ARG FLB_JEMALLOC=On
104+
ARG FLB_CHUNK_TRACE=On
105+
ARG FLB_UNICODE_ENCODER=On
106+
ARG FLB_KAFKA=On
107+
ARG FLB_OUT_PGSQL=On
108+
109+
RUN cmake -DCMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" \
110+
-DCMAKE_INSTALL_SYSCONFDIR="$CMAKE_INSTALL_SYSCONFDIR" \
111+
-DFLB_RELEASE="$FLB_RELEASE" \
112+
-DFLB_TRACE="$FLB_TRACE" \
113+
-DFLB_SQLDB="$FLB_SQLDB" \
114+
-DFLB_HTTP_SERVER="$FLB_HTTP_SERVER" \
115+
-DFLB_KAFKA="$FLB_KAFKA" \
116+
-DFLB_OUT_PGSQL="$FLB_OUT_PGSQL" \
117+
-DFLB_NIGHTLY_BUILD="$FLB_NIGHTLY_BUILD" \
118+
-DFLB_JEMALLOC_OPTIONS="$FLB_JEMALLOC_OPTIONS" \
119+
-DFLB_JEMALLOC="${FLB_JEMALLOC}" \
120+
-DFLB_CHUNK_TRACE="${FLB_CHUNK_TRACE}" \
121+
-DFLB_UNICODE_ENCODER="${FLB_UNICODE_ENCODER}" \
122+
../
123+
124+
VOLUME [ "/output" ]
125+
CMD [ "/bin/bash", "-c", "make --no-print-directory -j 4 && cpack3 -G RPM && cp *.rpm /output/" ]

packaging/test-release-packages.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ APT_TARGETS=("ubuntu:22.04"
4242
"debian:11")
4343

4444
YUM_TARGETS=("centos:7"
45+
"almalinux:8"
46+
"almalinux:9"
4547
"rockylinux:8"
48+
"rockylinux:9"
4649
"quay.io/centos/centos:stream9"
4750
"amazonlinux:2"
4851
"amazonlinux:2023")

packaging/update-repos.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fi
3131
# AWS_S3_BUCKET_STAGING=fluentbit-staging
3232
export AWS_REGION=${AWS_REGION:-us-east-1}
3333

34-
RPM_REPO_PATHS=("amazonlinux/2" "amazonlinux/2023" "centos/7" "centos/8" "centos/9")
34+
RPM_REPO_PATHS=("amazonlinux/2" "amazonlinux/2023" "centos/7" "centos/8" "centos/9" "rockylinux/8" "rockylinux/9" "almalinux/8" "almalinux/9" )
3535

3636
if [[ "${AWS_SYNC:-false}" != "false" ]]; then
3737
aws s3 sync s3://"${AWS_S3_BUCKET_RELEASE:?}" "${BASE_PATH:?}"
@@ -52,6 +52,7 @@ DEB_REPO_PATHS=( "debian/bookworm"
5252
"debian/buster"
5353
"ubuntu/jammy"
5454
"ubuntu/noble"
55+
"raspbian/bookworm"
5556
)
5657

5758
for DEB_REPO in "${DEB_REPO_PATHS[@]}"; do

0 commit comments

Comments
 (0)