summaryrefslogtreecommitdiffstats
path: root/scripts/docker/dists/rocky8/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--scripts/docker/dists/rocky8/Dockerfile (renamed from scripts/docker/rocky8/Dockerfile)77
1 files changed, 57 insertions, 20 deletions
diff --git a/scripts/docker/rocky8/Dockerfile b/scripts/docker/dists/rocky8/Dockerfile
index ca821a3..4dcb92e 100644
--- a/scripts/docker/rocky8/Dockerfile
+++ b/scripts/docker/dists/rocky8/Dockerfile
@@ -1,34 +1,54 @@
+# Auto generated for rocky8
+# from scripts/docker/m4/Dockerfile.rpm.m4
+#
+# Rebuild this file with `make docker.rocky8.regen`
+#
ARG from=rockylinux/rockylinux:8
FROM ${from} as build
+#
+# Install yum
+#
+RUN dnf install -y yum
+
RUN rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
#
# Install build tools
#
RUN yum groupinstall -y "Development Tools"
+
RUN yum install -y rpmdevtools openssl dnf-utils
+
#
# Create build directory
#
-RUN mkdir -p /usr/local/src/repositories
-WORKDIR /usr/local/src/repositories
+RUN mkdir -p /usr/local/src/repositories/freeradius-server
+WORKDIR /usr/local/src/repositories/freeradius-server/
+
+#
+# Copy the FreeRADIUS directory in
+#
+COPY . .
#
-# Shallow clone the FreeRADIUS source
+# Clean up tree - we want to build from the latest commit, not from
+# any cruft left around on the local system
#
-ARG source=https://github.com/FreeRADIUS/freeradius-server.git
-ARG release=v3.2.x
+RUN git clean -fdxx \
+ && git reset --hard HEAD
-RUN git clone --depth 1 --single-branch --branch ${release} ${source}
-WORKDIR freeradius-server
+ARG release
+RUN [ -z "$release" ] || git checkout ${release} ; \
+ git status ; \
+ git log -1 --oneline
#
# Other requirements
#
-# Use LTB's openldap packages intead of the distribution version to avoid linking against NSS
+# Use LTB's openldap packages intead of the distribution version to avoid linking against NSS
RUN echo $'[ltb-project]\n\
name=LTB project packages\n\
baseurl=https://ltb-project.org/rpm/$releasever/$basearch\n\
@@ -38,17 +58,23 @@ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project'\
> /etc/yum.repos.d/ltb-project.repo
RUN rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project
-# EPEL repository for freetds and hiredis
+# Enable EPEL repository for freetds and hiredis
RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
+# Enable powertools repo
RUN yum config-manager --enable powertools
-# Currently needed for hiredis-devel
+
+# Enable epel-testing, currently needed for hiredis-devel
RUN yum config-manager --enable epel-testing
#
# Install build dependencies
#
-RUN [ -e redhat/freeradius.spec ] && yum-builddep -y redhat/freeradius.spec
+# Run twice, it doesn't always get everything with one invocation
+#
+RUN [ -e redhat/freeradius.spec ] && \
+ yum-builddep -y redhat/freeradius.spec && \
+ yum-builddep -y redhat/freeradius.spec
#
# Create RPM build environment
@@ -57,9 +83,11 @@ ENV BUILDDIR=/root/rpmbuild
RUN rpmdev-setuptree
RUN ./configure
-RUN make freeradius-server-$(cat VERSION).tar.bz2
-RUN cp freeradius-server-$(cat VERSION).tar.bz2 $BUILDDIR/SOURCES/
+RUN cp VERSION /VERSION
+RUN make freeradius-server-$(cat /VERSION).tar.bz2
+RUN cp freeradius-server-$(cat /VERSION).tar.bz2 $BUILDDIR/SOURCES/
RUN cp -r redhat/* $BUILDDIR/SOURCES/
+RUN sed -i "s/^Version:.*/Version: $(cat /VERSION)/" redhat/freeradius.spec
RUN cp -r redhat/freeradius.spec $BUILDDIR/SPECS/
WORKDIR $BUILDDIR
@@ -67,7 +95,7 @@ WORKDIR $BUILDDIR
# Build the server
#
ENV QA_RPATHS=0x0003
-RUN rpmbuild -bb --define '_release $release' "$BUILDDIR/SPECS/freeradius.spec"
+RUN rpmbuild -bb --define "_release $(cat /VERSION)" "$BUILDDIR/SPECS/freeradius.spec"
RUN mkdir /root/rpms
RUN mv $BUILDDIR/RPMS/*/*.rpm /root/rpms/
@@ -76,8 +104,14 @@ RUN mv $BUILDDIR/RPMS/*/*.rpm /root/rpms/
# Clean environment and run the server
#
FROM ${from}
+
COPY --from=build /root/rpms /tmp/
+#
+# Install yum
+#
+RUN dnf install -y yum
+
# Use LTB's openldap packages intead of the distribution version to avoid linking against NSS
RUN echo $'[ltb-project]\n\
name=LTB project packages\n\
@@ -86,11 +120,13 @@ enabled=1\n\
gpgcheck=1\n\
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LTB-project'\
> /etc/yum.repos.d/ltb-project.repo \
- && rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project \
- \
-# EPEL repository for freetds and hiredis
- && yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
+ && rpm --import https://ltb-project.org/lib/RPM-GPG-KEY-LTB-project
+
+
+# EPEL repository for freetds and hiredis
+RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
&& yum install -y dnf-utils \
+ && yum config-manager --enable powertools \
&& yum config-manager --enable epel-testing
ARG radiusd_uid=95
@@ -100,8 +136,9 @@ RUN groupadd -g ${radiusd_gid} -r radiusd \
&& useradd -u ${radiusd_uid} -g radiusd -r -M -d /home/radiusd -s /sbin/nologin radiusd \
&& yum install -y /tmp/*.rpm
-COPY docker-entrypoint.sh /
-RUN chmod +x /docker-entrypoint.sh
+WORKDIR /
+COPY scripts/docker//etc/docker-entrypoint.sh.rpm docker-entrypoint.sh
+RUN chmod +x docker-entrypoint.sh
EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]