]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
docker: bit more needed for ubuntu24
authorMatthew Newton <matthew-git@newtoncomputing.co.uk>
Thu, 2 May 2024 16:12:51 +0000 (17:12 +0100)
committerMatthew Newton <matthew-git@newtoncomputing.co.uk>
Wed, 22 May 2024 14:10:02 +0000 (15:10 +0100)
scripts/docker/docker.mk
scripts/docker/ubuntu24/Dockerfile [new file with mode: 0644]

index 7d4913ffab803821b65909483abd614e1668690b..3d73842e75ca166f5d7a1c2511f0c698e008d258 100644 (file)
@@ -80,6 +80,7 @@ $(eval $(call ADD_DOCKER_REGEN,debian12,deb,debian:bookworm,debian,12,bookworm))
 $(eval $(call ADD_DOCKER_REGEN,ubuntu18,deb,ubuntu:18.04,ubuntu,18,bionic))
 $(eval $(call ADD_DOCKER_REGEN,ubuntu20,deb,ubuntu:20.04,ubuntu,20,focal))
 $(eval $(call ADD_DOCKER_REGEN,ubuntu22,deb,ubuntu:22.04,ubuntu,22,jammy))
+$(eval $(call ADD_DOCKER_REGEN,ubuntu24,deb,ubuntu:24.04,ubuntu,24,noble))
 $(eval $(call ADD_DOCKER_REGEN,centos7,rpm,centos:centos7,centos,7,7))
 $(eval $(call ADD_DOCKER_REGEN,rocky8,rpm,rockylinux/rockylinux:8,rocky,8,8))
 $(eval $(call ADD_DOCKER_REGEN,rocky9,rpm,rockylinux/rockylinux:9,rocky,9,9))
diff --git a/scripts/docker/ubuntu24/Dockerfile b/scripts/docker/ubuntu24/Dockerfile
new file mode 100644 (file)
index 0000000..a533b4f
--- /dev/null
@@ -0,0 +1,69 @@
+# Auto generated for ubuntu24
+# from scripts/docker/m4/Dockerfile.deb.m4
+#
+# Rebuild this file with `make docker.ubuntu24.regen`
+#
+ARG from=ubuntu:24.04
+FROM ${from} as build
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+#
+#  Install build tools
+#
+RUN apt-get update
+RUN apt-get install -y devscripts equivs git quilt gcc
+
+#
+#  Create build directory
+#
+RUN mkdir -p /usr/local/src/repositories
+WORKDIR /usr/local/src/repositories
+
+#
+#  Shallow clone the FreeRADIUS source
+#
+ARG source=https://github.com/FreeRADIUS/freeradius-server.git
+ARG release=v3.2.x
+
+RUN git clone --depth 1 --single-branch --branch ${release} ${source}
+WORKDIR freeradius-server
+
+#
+#  Install build dependencies
+#
+RUN git checkout ${release}; \
+    if [ -e ./debian/control.in ]; then \
+        debian/rules debian/control; \
+    fi; \
+    echo 'y' | mk-build-deps -irt'apt-get -yV' debian/control
+
+#
+#  Build the server
+#
+RUN make -j2 deb
+
+#
+#  Clean environment and run the server
+#
+FROM ${from}
+COPY --from=build /usr/local/src/repositories/*.deb /tmp/
+
+ARG freerad_uid=101
+ARG freerad_gid=101
+
+RUN groupadd -g ${freerad_gid} -r freerad \
+    && useradd -u ${freerad_uid} -g freerad -r -M -d /etc/freeradius -s /usr/sbin/nologin freerad \
+    && apt-get update \
+    && apt-get install -y /tmp/*.deb \
+    && apt-get clean \
+    && rm -r /var/lib/apt/lists/* /tmp/*.deb \
+    \
+    && ln -s /etc/freeradius /etc/raddb
+
+COPY docker-entrypoint.sh /
+RUN chmod +x /docker-entrypoint.sh
+
+EXPOSE 1812/udp 1813/udp
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["freeradius"]