Sign inSign up

scorsair/freeradius

By scorsair

•Updated 7 months ago

Distroless/Rootless FreeRadius Server

Image
Networking
0

301

scorsair/freeradius repository overview

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

Tag summary

Content type

Image

Digest

sha256:2e85ec02a…

Size

27 MB

Last updated

7 months ago

docker pull scorsair/freeradius:3.2.8