Dockerfile.rpmbuild9 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # Dockerfile for build RPM packages.
  2. # Copyright (C) 2022 - 2025 Teddysun <[email protected]>
  3. FROM rockylinux:9
  4. LABEL maintainer="Teddysun <[email protected]>"
  5. RUN dnf install -y yum-utils epel-release && \
  6. dnf config-manager --enable epel && \
  7. dnf config-manager --enable crb && \
  8. dnf install -y https://dl.lamp.sh/linux/rhel/el9/x86_64/teddysun-release-1.0-1.el9.noarch.rpm && \
  9. rpm -e --nodeps coreutils-single && \
  10. rpm -e --nodeps libcurl-minimal && \
  11. dnf install -y tar wget wget2 curl libcurl libcurl-devel git tree gcc gcc-c++ \
  12. sudo net-tools make cmake zstd libzstd chkconfig pcre-devel pcre2-devel \
  13. bash coreutils diffutils patch ca-certificates \
  14. rpm-build rpm-devel rpmlint rpmdevtools ncurses which procps \
  15. asciidoc audit-libs-devel binutils-devel flex jq gettext \
  16. libcap-devel newt-devel pciutils-devel perl-generators \
  17. python3 python3-devel python3-docutils rsync xmlto bc bison \
  18. java-devel ncurses-devel numactl-devel openssl-devel perl-devel \
  19. bpftool dwarves gcc-plugin-devel glibc-static hmaccalc kernel-rpm-macros \
  20. libbabeltrace-devel libbpf-devel libcap-ng-devel libnl3-devel libtraceevent-devel \
  21. elfutils-devel xz-devel perl-ExtUtils-Embed && \
  22. dnf clean all && rm -rf /var/cache/dnf /var/lib/rpm/__db*
  23. RUN useradd builder -u 1000 -m -G users,wheel && \
  24. echo "builder ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers && \
  25. echo "# macros" > /home/builder/.rpmmacros && \
  26. echo "%_topdir /home/builder/rpmbuild" >> /home/builder/.rpmmacros && \
  27. echo "%_sourcedir %{_topdir}" >> /home/builder/.rpmmacros && \
  28. echo "%_builddir %{_topdir}" >> /home/builder/.rpmmacros && \
  29. echo "%_specdir %{_topdir}" >> /home/builder/.rpmmacros && \
  30. echo "%_rpmdir %{_topdir}" >> /home/builder/.rpmmacros && \
  31. echo "%_srcrpmdir %{_topdir}" >> /home/builder/.rpmmacros && \
  32. echo "set enable-bracketed-paste off" >> /etc/inputrc && \
  33. mkdir -p /home/builder/rpmbuild && \
  34. chown -R builder /home/builder
  35. USER builder
  36. VOLUME /home/builder
  37. WORKDIR /home/builder/rpmbuild
  38. CMD ["/bin/bash"]