11FROM --platform=linux/amd64 ubuntu:24.04
22
3- # ── System dependencies ────────────────────────────────────────────────────────
3+ # System dependencies
44RUN apt-get update && apt-get install -y \
55 # Build essentials
66 build-essential \
@@ -14,13 +14,14 @@ RUN apt-get update && apt-get install -y \
1414 # Google perf tools
1515 libgoogle-perftools-dev \
1616 google-perftools \
17- # Valgrind profiling
17+ # Valgrind / heap profiling
1818 valgrind \
19+ heaptrack \
1920 # Utilities
2021 less \
2122 psmisc \
2223 # kcachegrind - GUI callgrind viewer (requires display/X11 forwarding or VNC)
23- # Lots of KDE/Qt dependencies (~200MB+).
24+ # Uncomment to enable. Pulls in heavy KDE/Qt dependencies (~200MB+).
2425 # To use: run with `docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix`
2526 # kcachegrind \
2627 # kio \
@@ -31,7 +32,7 @@ RUN apt-get update && apt-get install -y \
3132 # libqt5widgets5 \
3233 && rm -rf /var/lib/apt/lists/* # purge apt index cache in the same layer to prevent it being frozen into the image
3334
34- # ── libkqueue (package version causes runtime issues) ─────────────────────────
35+ # libkqueue (package version causes runtime issues)
3536RUN git clone https://github.com/mheily/libkqueue.git /tmp/libkqueue \
3637 && cd /tmp/libkqueue \
3738 && cmake \
@@ -43,7 +44,7 @@ RUN git clone https://github.com/mheily/libkqueue.git /tmp/libkqueue \
4344 && ldconfig \
4445 && rm -rf /tmp/libkqueue
4546
46- # ── Fresh FreeRADIUS checkout ──────────────────────────────────────────────────
47+ # Fresh FreeRADIUS checkout
4748# Change FREERADIUS_REPO / FREERADIUS_BRANCH to point at your fork or branch.
4849ARG FREERADIUS_REPO=https://github.com/FreeRADIUS/freeradius-server.git
4950ARG FREERADIUS_BRANCH=master
@@ -53,18 +54,17 @@ RUN git clone --depth 1 --branch ${FREERADIUS_BRANCH} \
5354
5455WORKDIR /freeradius
5556
56- # ── Configure & build with gperftools ─────────────────────────────────────────
57+ # Configure & build with gperftools
5758RUN ./configure --with-gperftools \
5859 && make
5960
60- # ── Runtime environment for gperftools profiling ──────────────────────────────
61+ # Runtime environment for gperftools profiling
6162# These can all be overridden at `docker run` time with -e.
6263ENV CPUPROFILE=/tmp/freeradius.prof \
6364 CPUPROFILESIGNAL=12 \
6465 CPUPROFILE_FREQUENCY=1000
6566
6667EXPOSE 8080 1812/udp 1813/udp
6768
68- # Default: start the server in foreground, logging to stdout.
69- # Override CMD (or use `docker run ... bash`) to drop into a shell instead.
70- CMD ["./scripts/bin/radiusd" , "-f" , "-l" , "stdout" ]
69+ # Keep the container alive. Server will be started manually via 'docker exec'
70+ CMD ["sleep" , "infinity" ]
0 commit comments