Distroless/Rootless FreeRadius Server
301
Built by Stanislav Garifullin
Dockerfile:
# Step 1
FROM ubuntu:24.04 as build
ENV DEBIAN_FRONTEND=noninteractive
ENV VERSION=3.2.8
ENV PREFIX=/tmp/install
ENV LD_LIBRARY_PATH=/tmp/openldap/lib
ENV RADMIN=65534
ENV RGROUP=65534
RUN apt update -y && \
apt install -y curl gcc make \
libtalloc-dev libssl-dev libpq-dev libmysqlclient-dev libsqlite3-dev \
libunbound-dev libcurl4-openssl-dev libhiredis-dev libjson-c-dev \
libgdbm-dev libmemcached-dev pax-utils groff-base less
RUN cd /tmp/ && \
curl -k -LO https://github.com/openldap/openldap/archive/refs/tags/OPENLDAP_REL_ENG_2_6_12.tar.gz && \
tar -xf OPENLDAP_REL_ENG_2_6_12.tar.gz && cd openldap-OPENLDAP_REL_ENG_2_6_12 && \
./configure --prefix=/tmp/openldap --with-tls=openssl && make depend && make install
RUN cd /tmp/ && \
curl -k -LO https://www.freeradius.org/ftp/pub/freeradius/freeradius-server-${VERSION}.tar.gz && \
tar -xf freeradius-server-${VERSION}.tar.gz && \
cd freeradius-server-${VERSION} && \
sed -i 's/^default_days.*/default_days=3600/g' ./raddb/certs/*.cnf && \
./configure --datadir=/usr/share --prefix=/usr/local --sysconfdir=/etc --localstatedir=/var \
LDFLAGS="-L/tmp/openldap/lib" CPPFLAGS="-I/tmp/openldap/include" && \
make -j32 && \
make install datadir=${PREFIX}/usr/share prefix=${PREFIX}/usr/local \
sysconfdir=${PREFIX}/etc localstatedir=${PREFIX}/var
RUN rm -rf ${PREFIX}/usr/share/doc ${PREFIX}/usr/local/share/man && \
rm -rf ${PREFIX}/usr/local/include && \
find ${PREFIX}/usr/local/lib/ -type f -name '*.a' -exec rm -f {} \; && \
find ${PREFIX}/usr/local/lib/ -type f -name '*.la' -exec rm -f {} \; && \
find ${PREFIX}/usr/local/lib/ ${PREFIX}/usr/local/sbin/ ${PREFIX}/usr/local/bin/ -name '*' \
-type f -exec lddtree --skip-non-elfs --copy-to-tree=/tmp -l {} \; && \
find /tmp/lib/x86_64-linux-gnu/ /tmp/tmp/openldap/lib/ -name '*.so*' ! -name '*libc.so*' \
! -name '*ld-linux*' -exec cp {} ${PREFIX}/usr/local/lib/ \; && \
chown -R 65534:65534 ${PREFIX} /usr/lib/ssl /etc/ssl /usr/lib/x86_64-linux-gnu && \
find ${PREFIX}/usr/local/lib/ -name '*.so*' -type f -exec chmod 755 {} \;
# Step 2
FROM gcr.io/distroless/base-nossl-debian13:nonroot
ENV LD_LIBRARY_PATH=/usr/local/lib/
COPY --from=build /tmp/install/ /
# SSL
COPY --from=build /usr/lib/ssl /usr/lib/ssl
COPY --from=build /etc/ssl /etc/ssl
COPY --from=build /usr/lib/x86_64-linux-gnu/ossl-modules/legacy.so /usr/lib/x86_64-linux-gnu/ossl-modules/legacy.so
USER "65534:65534"
ENTRYPOINT ["/usr/local/sbin/radiusd", "-f"]
EXPOSE 1812/udp
EXPOSE 1813/udp
Content type
Image
Digest
sha256:2e85ec02a…
Size
27 MB
Last updated
7 months ago
docker pull scorsair/freeradius:3.2.8