From 84807477b2939307f39c00667db7da1415a145de Mon Sep 17 00:00:00 2001 From: Matthew Newton Date: Thu, 2 May 2024 17:12:51 +0100 Subject: [PATCH] docker: bit more needed for ubuntu24 --- scripts/docker/docker.mk | 1 + scripts/docker/ubuntu24/Dockerfile | 69 ++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 scripts/docker/ubuntu24/Dockerfile diff --git a/scripts/docker/docker.mk b/scripts/docker/docker.mk index 7d4913ffab..3d73842e75 100644 --- a/scripts/docker/docker.mk +++ b/scripts/docker/docker.mk @@ -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 index 0000000000..a533b4fd20 --- /dev/null +++ b/scripts/docker/ubuntu24/Dockerfile @@ -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"] -- 2.47.3