Skip to content

Commit

Permalink
Add package builders for Fedora 41 and Ubuntu 24.10.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ferroin committed Sep 17, 2024
1 parent 1459ddd commit ee67a21
Show file tree
Hide file tree
Showing 5 changed files with 317 additions and 2 deletions.
8 changes: 6 additions & 2 deletions .github/data/matrices.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,13 @@ package-builders:
- <<: *debian
os: debian10
- &fedora
os: fedora40
os: fedora41
revisions: *pkg-builder-revs
platforms:
- linux/amd64
- linux/arm64/v8
- <<: *fedora
os: fedora40
- <<: *fedora
os: fedora39
- &opensuse
Expand Down Expand Up @@ -103,12 +105,14 @@ package-builders:
- <<: *rocky
os: rockylinux8
- &ubuntu
os: ubuntu24.04
os: ubuntu24.10
revisions: *pkg-builder-revs
platforms:
- linux/amd64
- linux/arm/v7
- linux/arm64/v8
- <<: *ubuntu
os: ubuntu24.04
- <<: *ubuntu
os: ubuntu22.04
- <<: *ubuntu
Expand Down
74 changes: 74 additions & 0 deletions package-builders/Dockerfile.fedora41.v1
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
FROM fedora:40

LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>"
LABEL org.opencontainers.image.source="https://github.com/netdata/helper-images"
LABEL org.opencontainers.image.title="Netdata Package Builder for Fedora 40"
LABEL org.opencontainers.image.description="Package builder image for Netdata official RPM packages for Fedora 39"
LABEL org.opencontainers.image.vendor="Netdata Inc."

ENV VERSION=$VERSION

Check warning on line 9 in package-builders/Dockerfile.fedora41.v1

View workflow job for this annotation

GitHub Actions / Build Check (fedora41, v1)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

Check warning on line 9 in package-builders/Dockerfile.fedora41.v1

View workflow job for this annotation

GitHub Actions / PR Checks (fedora41, linux/arm64/v8, v1)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
# Dummy Sentry DSN
ENV SENTRY_DSN="https://1ea0662a@o01e.ingest.sentry.io/dummy"

RUN dnf distro-sync -y --nodocs && \
dnf clean -y packages && \
dnf install -y --nodocs --setopt=install_weak_deps=False --setopt=diskspacecheck=False \
bash \
bison \
cmake \
cups-devel \
curl \
diffutils \
elfutils-libelf-devel \
findutils \
flex \
freeipmi-devel \
gcc \
gcc-c++ \
git-core \
json-c-devel \
libyaml-devel \
Judy-devel \
libatomic \
libcurl-devel \
libmnl-devel \
libnetfilter_acct-devel \
libuuid-devel \
libuv-devel \
libzstd-devel \
lz4-devel \
make \
ninja-build \
openssl-devel \
openssl-perl \
patch \
pcre2-devel \
pkgconfig \
'pkgconfig(libmongoc-1.0)' \
procps \
protobuf-c-devel \
protobuf-compiler \
protobuf-devel \
rpm-build \
rpm-devel \
rpmdevtools \
snappy-devel \
systemd-devel \
xen-devel \
zlib-devel && \
rm -rf /var/cache/dnf && \
c_rehash && \
mkdir -p /root/rpmbuild/BUILD /root/rpmbuild/RPMS /root/rpmbuild/SOURCES /root/rpmbuild/SPECS /root/rpmbuild/SRPMS

COPY package-builders/entrypoint.sh /entrypoint.sh
COPY package-builders/fedora-build.sh /build.sh

ENV PATH="/usr/local/go/bin:${PATH}"
ADD https://raw.githubusercontent.com/netdata/netdata/master/packaging/check-for-go-toolchain.sh /tmp/check-for-go-toolchain.sh
RUN . /tmp/check-for-go-toolchain.sh && \

Check warning on line 68 in package-builders/Dockerfile.fedora41.v1

View workflow job for this annotation

GitHub Actions / hadolint

[hadolint] reported by reviewdog 🐶 Not following: File not included in mock. Raw Output: message:"Not following: File not included in mock." location:{path:"package-builders/Dockerfile.fedora41.v1" range:{start:{line:68 column:1}}} severity:INFO source:{name:"hadolint" url:"https://github.com/hadolint/hadolint"} code:{value:"SC1091" url:"https://github.com/koalaman/shellcheck/wiki/SC1091"}
if ! ensure_go_toolchain; then \
echo "ERROR: ${GOLANG_FAILURE_REASON}" && exit 1 ; \
fi

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/build.sh"]
72 changes: 72 additions & 0 deletions package-builders/Dockerfile.fedora41.v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
FROM fedora:40

LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>"
LABEL org.opencontainers.image.source="https://github.com/netdata/helper-images"
LABEL org.opencontainers.image.title="Netdata Package Builder for Fedora 40"
LABEL org.opencontainers.image.description="Package builder image for Netdata official RPM packages for Fedora 39"
LABEL org.opencontainers.image.vendor="Netdata Inc."

ENV VERSION=$VERSION

Check warning on line 9 in package-builders/Dockerfile.fedora41.v2

View workflow job for this annotation

GitHub Actions / Build Check (fedora41, v2)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

Check warning on line 9 in package-builders/Dockerfile.fedora41.v2

View workflow job for this annotation

GitHub Actions / PR Checks (fedora41, linux/arm64/v8, v2)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$VERSION' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
# Dummy Sentry DSN
ENV SENTRY_DSN="https://1ea0662a@o01e.ingest.sentry.io/dummy"

RUN dnf distro-sync -y --nodocs && \
dnf clean -y packages && \
dnf install -y --nodocs --setopt=install_weak_deps=False --setopt=diskspacecheck=False \
bash \
bison \
cmake \
cups-devel \
curl \
diffutils \
elfutils-libelf-devel \
findutils \
flex \
freeipmi-devel \
gcc \
gcc-c++ \
git-core \
json-c-devel \
libyaml-devel \
Judy-devel \
libatomic \
libcurl-devel \
libmnl-devel \
libnetfilter_acct-devel \
libuuid-devel \
libuv-devel \
libzstd-devel \
lz4-devel \
make \
ninja-build \
openssl-devel \
openssl-perl \
patch \
pcre2-devel \
pkgconfig \
'pkgconfig(libmongoc-1.0)' \
procps \
protobuf-c-devel \
protobuf-compiler \
protobuf-devel \
rpmdevtools \
snappy-devel \
systemd-devel \
systemd-rpm-macros \
xen-devel \
zlib-devel && \
rm -rf /var/cache/dnf && \
c_rehash

COPY package-builders/entrypoint.sh /entrypoint.sh
COPY package-builders/cpack-rpm.sh /build.sh

ENV PATH="/usr/local/go/bin:${PATH}"
ADD https://raw.githubusercontent.com/netdata/netdata/master/packaging/check-for-go-toolchain.sh /tmp/check-for-go-toolchain.sh
RUN . /tmp/check-for-go-toolchain.sh && \

Check warning on line 66 in package-builders/Dockerfile.fedora41.v2

View workflow job for this annotation

GitHub Actions / hadolint

[hadolint] reported by reviewdog 🐶 Not following: File not included in mock. Raw Output: message:"Not following: File not included in mock." location:{path:"package-builders/Dockerfile.fedora41.v2" range:{start:{line:66 column:1}}} severity:INFO source:{name:"hadolint" url:"https://github.com/hadolint/hadolint"} code:{value:"SC1091" url:"https://github.com/koalaman/shellcheck/wiki/SC1091"}
if ! ensure_go_toolchain; then \
echo "ERROR: ${GOLANG_FAILURE_REASON}" && exit 1 ; \
fi

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/build.sh"]
83 changes: 83 additions & 0 deletions package-builders/Dockerfile.ubuntu24.10.v1
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
FROM ubuntu:24.10

LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>"
LABEL org.opencontainers.image.source="https://github.com/netdata/helper-images"
LABEL org.opencontainers.image.title="Netdata Package Builder for Ubuntu 24.10"
LABEL org.opencontainers.image.description="Package builder image for Netdata official DEB packages for Ubuntu 24.10"
LABEL org.opencontainers.image.vendor="Netdata Inc."

ENV EMAIL=bot@netdata.cloud
ENV FULLNAME="Netdata Builder"
ENV VERSION=0.1

# This is needed to keep package installs from prompting about configuration.
ENV DEBIAN_FRONTEND=noninteractive
# Dummy Sentry DSN
ENV SENTRY_DSN="https://1ea0662a@o01e.ingest.sentry.io/dummy"

RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
bison \
build-essential \
ca-certificates \
cmake \
curl \
debhelper \
dpkg-dev \
flex \
g++ \
gcc \
git-buildpackage \
git-core \
libatomic1 \
libcups2-dev \
libcurl4-openssl-dev \
libdistro-info-perl \
libelf-dev \
libipmimonitoring-dev \
libjson-c-dev \
libyaml-dev \
libjudy-dev \
liblz4-dev \
libmnl-dev \
libmongoc-dev \
libnetfilter-acct-dev \
libpcre2-dev \
libprotobuf-dev \
libprotoc-dev \
libsnappy-dev \
libsystemd-dev \
libssl-dev \
libuv1-dev \
libxen-dev \
libzstd-dev \
make \
ninja-build \
patch \
pkg-config \
protobuf-compiler \
systemd \
uuid-dev \
wget \
zlib1g-dev && \
apt-get clean && \
c_rehash && \
rm -rf /var/lib/apt/lists/*

RUN curl --fail -sSL --connect-timeout 10 --retry 3 https://sentry.io/get-cli/ > /tmp/get-sentry.sh && \
sh /tmp/get-sentry.sh && \
rm -f /tmp/get-sentry.sh

COPY package-builders/entrypoint.sh /entrypoint.sh
COPY package-builders/debian-build.sh /build.sh

ENV PATH="/usr/local/go/bin:${PATH}"
ADD https://raw.githubusercontent.com/netdata/netdata/master/packaging/check-for-go-toolchain.sh /tmp/check-for-go-toolchain.sh
RUN . /tmp/check-for-go-toolchain.sh && \

Check warning on line 77 in package-builders/Dockerfile.ubuntu24.10.v1

View workflow job for this annotation

GitHub Actions / hadolint

[hadolint] reported by reviewdog 🐶 Not following: File not included in mock. Raw Output: message:"Not following: File not included in mock." location:{path:"package-builders/Dockerfile.ubuntu24.10.v1" range:{start:{line:77 column:1}}} severity:INFO source:{name:"hadolint" url:"https://github.com/hadolint/hadolint"} code:{value:"SC1091" url:"https://github.com/koalaman/shellcheck/wiki/SC1091"}
if ! ensure_go_toolchain; then \
echo "ERROR: ${GOLANG_FAILURE_REASON}" && exit 1 ; \
fi

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/build.sh"]
82 changes: 82 additions & 0 deletions package-builders/Dockerfile.ubuntu24.10.v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
FROM ubuntu:24.10

LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>"
LABEL org.opencontainers.image.source="https://github.com/netdata/helper-images"
LABEL org.opencontainers.image.title="Netdata Package Builder for Ubuntu 24.10"
LABEL org.opencontainers.image.description="Package builder image for Netdata official DEB packages for Ubuntu 24.10"
LABEL org.opencontainers.image.vendor="Netdata Inc."

ENV EMAIL=bot@netdata.cloud
ENV FULLNAME="Netdata Builder"
ENV VERSION=0.1

# This is needed to keep package installs from prompting about configuration.
ENV DEBIAN_FRONTEND=noninteractive
# Dummy Sentry DSN
ENV SENTRY_DSN="https://1ea0662a@o01e.ingest.sentry.io/dummy"

RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y --no-install-recommends \
bison \
build-essential \
ca-certificates \
cmake \
curl \
dpkg-dev \
file \
flex \
g++ \
gcc \
git-core \
libatomic1 \
libcups2-dev \
libcurl4-openssl-dev \
libdistro-info-perl \
libelf-dev \
libipmimonitoring-dev \
libjson-c-dev \
libyaml-dev \
libjudy-dev \
liblz4-dev \
libmnl-dev \
libmongoc-dev \
libnetfilter-acct-dev \
libpcre2-dev \
libprotobuf-dev \
libprotoc-dev \
libsnappy-dev \
libsystemd-dev \
libssl-dev \
libuv1-dev \
libxen-dev \
libzstd-dev \
make \
ninja-build \
patch \
pkg-config \
protobuf-compiler \
systemd \
uuid-dev \
wget \
zlib1g-dev && \
apt-get clean && \
c_rehash && \
rm -rf /var/lib/apt/lists/*

RUN curl --fail -sSL --connect-timeout 10 --retry 3 https://sentry.io/get-cli/ > /tmp/get-sentry.sh && \
sh /tmp/get-sentry.sh && \
rm -f /tmp/get-sentry.sh

COPY package-builders/entrypoint.sh /entrypoint.sh
COPY package-builders/cpack-deb.sh /build.sh

ENV PATH="/usr/local/go/bin:${PATH}"
ADD https://raw.githubusercontent.com/netdata/netdata/master/packaging/check-for-go-toolchain.sh /tmp/check-for-go-toolchain.sh
RUN . /tmp/check-for-go-toolchain.sh && \

Check warning on line 76 in package-builders/Dockerfile.ubuntu24.10.v2

View workflow job for this annotation

GitHub Actions / hadolint

[hadolint] reported by reviewdog 🐶 Not following: File not included in mock. Raw Output: message:"Not following: File not included in mock." location:{path:"package-builders/Dockerfile.ubuntu24.10.v2" range:{start:{line:76 column:1}}} severity:INFO source:{name:"hadolint" url:"https://github.com/hadolint/hadolint"} code:{value:"SC1091" url:"https://github.com/koalaman/shellcheck/wiki/SC1091"}
if ! ensure_go_toolchain; then \
echo "ERROR: ${GOLANG_FAILURE_REASON}" && exit 1 ; \
fi

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/build.sh"]

0 comments on commit ee67a21

Please sign in to comment.