Skip to content

Commit

Permalink
docker: regenerate dockerfiles
Browse files Browse the repository at this point in the history
  • Loading branch information
mcnewton committed May 22, 2024
1 parent 10f8fa2 commit c684d67
Show file tree
Hide file tree
Showing 12 changed files with 344 additions and 185 deletions.
34 changes: 23 additions & 11 deletions scripts/docker/dists/alpine/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# Auto generated for alpine
# from scripts/docker/m4/Dockerfile.alpine.m4
#
# Rebuild this file with `make docker.alpine.regen`
#
ARG from=alpine:3.13
FROM ${from} as build

Expand All @@ -10,17 +15,23 @@ RUN apk add git gcc make
#
# Create build directory
#
RUN mkdir -p /usr/local/src/repositories
WORKDIR /usr/local/src/repositories
RUN mkdir -p /usr/local/src/repositories/freeradius-server
WORKDIR /usr/local/src/repositories/freeradius-server/

#
# Copy the FreeRADIUS directory in
#
COPY . .

#
# Shallow clone the FreeRADIUS source
# Clean up tree - we want to build from the latest commit, not from
# any cruft left around on the local system
#
ARG source=https://github.com/FreeRADIUS/freeradius-server.git
ARG release=v3.2.x
RUN git clean -fdxx \
&& git reset --hard HEAD

RUN [ -z "$release" ] || git checkout ${release}

RUN git clone --depth 1 --single-branch --branch ${release} ${source}
WORKDIR freeradius-server

#
# Install build dependencies
Expand All @@ -33,7 +44,7 @@ RUN apk add linux-headers
RUN apk add pcre-dev libidn-dev krb5-dev samba-dev curl-dev json-c-dev
RUN apk add openldap-dev unbound-dev
# languages
RUN apk add ruby-dev perl-dev python2-dev
RUN apk add ruby-dev perl-dev python2-dev python3-dev
# databases
RUN apk add hiredis-dev libmemcached-dev gdbm-dev libcouchbase-dev
# sql
Expand Down Expand Up @@ -69,14 +80,15 @@ RUN apk update \
&& apk add libcurl json-c libldap hiredis sqlite-dev \
#RUN apk add libidn krb5
#RUN apk add unbound-libs
#RUN apk add ruby-libs perl python2-dev
#RUN apk add ruby-libs perl python2-dev python3-dev
#RUN apk add libmemcached gdbm libcouchbase
#RUN apk add postgresql-dev mariadb-dev unixodbc-dev
\
&& ln -s /opt/etc/raddb /etc/raddb

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
WORKDIR /
COPY scripts/docker//etc/docker-entrypoint.sh.alpine docker-entrypoint.sh
RUN chmod +x docker-entrypoint.sh

EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]
Expand Down
35 changes: 23 additions & 12 deletions scripts/docker/dists/centos7/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ ARG from=centos:7
FROM ${from} as build



#
# Install build tools
#
Expand All @@ -18,17 +19,22 @@ RUN yum install -y openssl
#
# Create build directory
#
RUN mkdir -p /usr/local/src/repositories
WORKDIR /usr/local/src/repositories
RUN mkdir -p /usr/local/src/repositories/freeradius-server
WORKDIR /usr/local/src/repositories/freeradius-server/

#
# Copy the FreeRADIUS directory in
#
COPY . .

#
# Shallow clone the FreeRADIUS source
# Clean up tree - we want to build from the latest commit, not from
# any cruft left around on the local system
#
ARG source=https://github.com/FreeRADIUS/freeradius-server.git
ARG release=v3.2.x
RUN git clean -fdxx \
&& git reset --hard HEAD

RUN git clone --depth 1 --single-branch --branch ${release} ${source}
WORKDIR freeradius-server
RUN [ -z "$release" ] || git checkout ${release}

#
# Other requirements
Expand Down Expand Up @@ -63,17 +69,19 @@ ENV BUILDDIR=/root/rpmbuild
RUN rpmdev-setuptree

RUN ./configure
RUN make freeradius-server-$(cat VERSION).tar.bz2
RUN cp freeradius-server-$(cat VERSION).tar.bz2 $BUILDDIR/SOURCES/
RUN cp VERSION /VERSION
RUN make freeradius-server-$(cat /VERSION).tar.bz2
RUN cp freeradius-server-$(cat /VERSION).tar.bz2 $BUILDDIR/SOURCES/
RUN cp -r redhat/* $BUILDDIR/SOURCES/
RUN sed -i "s/^Version:.*/Version: $(cat /VERSION)/" redhat/freeradius.spec
RUN cp -r redhat/freeradius.spec $BUILDDIR/SPECS/
WORKDIR $BUILDDIR

#
# Build the server
#
ENV QA_RPATHS=0x0003
RUN rpmbuild -bb --define '_release $release' "$BUILDDIR/SPECS/freeradius.spec"
RUN rpmbuild -bb --define "_release $(cat /VERSION)" "$BUILDDIR/SPECS/freeradius.spec"

RUN mkdir /root/rpms
RUN mv $BUILDDIR/RPMS/*/*.rpm /root/rpms/
Expand All @@ -82,8 +90,10 @@ RUN mv $BUILDDIR/RPMS/*/*.rpm /root/rpms/
# Clean environment and run the server
#
FROM ${from}

COPY --from=build /root/rpms /tmp/


# Use LTB's openldap packages intead of the distribution version to avoid linking against NSS
RUN echo $'[ltb-project]\n\
name=LTB project packages\n\
Expand All @@ -100,8 +110,9 @@ RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.n
\
&& yum install -y /tmp/*.rpm

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
WORKDIR /
COPY scripts/docker//etc/docker-entrypoint.sh.rpm docker-entrypoint.sh
RUN chmod +x docker-entrypoint.sh

EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]
Expand Down
44 changes: 28 additions & 16 deletions scripts/docker/dists/debian10/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,59 @@ 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
RUN mkdir -p /usr/local/src/repositories/freeradius-server
WORKDIR /usr/local/src/repositories/freeradius-server/

#
# Shallow clone the FreeRADIUS source
# Copy the FreeRADIUS directory in
#
ARG source=https://github.com/FreeRADIUS/freeradius-server.git
ARG release=v3.2.x
COPY . .

RUN git clone --depth 1 --single-branch --branch ${release} ${source}
WORKDIR freeradius-server
#
# Clean up tree - we want to build from the latest commit, not from
# any cruft left around on the local system
#
RUN git clean -fdxx \
&& git reset --hard HEAD

RUN [ -z "$release" ] || git checkout ${release}

#
# Install build dependencies
#
RUN git checkout ${release}; \
if [ -e ./debian/control.in ]; then \
RUN 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
# Work around fakeroot problems in Docker when building for different
# platforms - doesn't matter as we run as root in the container anyway.
#
#RUN make -j$(nproc) deb
RUN debian/rules debian/control \
&& dpkg-buildpackage --jobs=auto -b -uc

#
# Clean environment and run the server
#
FROM ${from}
ARG DEBIAN_FRONTEND=noninteractive

COPY --from=build /usr/local/src/repositories/*.deb /tmp/

RUN apt-get update \
&& apt-get install -y /tmp/*.deb \
&& apt-get clean \
&& rm -r /var/lib/apt/lists/* /tmp/*.deb \
&& apt-get install -y /tmp/*.deb \
&& apt-get clean \
&& rm -r /var/lib/apt/lists/* /tmp/*.deb \
\
&& ln -s /etc/freeradius /etc/raddb
&& ln -s /etc/freeradius /etc/raddb

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
WORKDIR /
COPY scripts/docker/etc/docker-entrypoint.sh.deb docker-entrypoint.sh
RUN chmod +x docker-entrypoint.sh

EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]
Expand Down
48 changes: 30 additions & 18 deletions scripts/docker/dists/debian11/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,52 +17,64 @@ 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
RUN mkdir -p /usr/local/src/repositories/freeradius-server
WORKDIR /usr/local/src/repositories/freeradius-server/

#
# Shallow clone the FreeRADIUS source
# Copy the FreeRADIUS directory in
#
ARG source=https://github.com/FreeRADIUS/freeradius-server.git
ARG release=v3.2.x
COPY . .

RUN git clone --depth 1 --single-branch --branch ${release} ${source}
WORKDIR freeradius-server
#
# Clean up tree - we want to build from the latest commit, not from
# any cruft left around on the local system
#
RUN git clean -fdxx \
&& git reset --hard HEAD

RUN [ -z "$release" ] || git checkout ${release}

#
# Install build dependencies
#
RUN git checkout ${release}; \
if [ -e ./debian/control.in ]; then \
RUN 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
# Work around fakeroot problems in Docker when building for different
# platforms - doesn't matter as we run as root in the container anyway.
#
#RUN make -j$(nproc) deb
RUN debian/rules debian/control \
&& dpkg-buildpackage --jobs=auto -b -uc

#
# Clean environment and run the server
#
FROM ${from}
ARG DEBIAN_FRONTEND=noninteractive

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 \
&& 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
&& ln -s /etc/freeradius /etc/raddb

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
WORKDIR /
COPY scripts/docker/etc/docker-entrypoint.sh.deb docker-entrypoint.sh
RUN chmod +x docker-entrypoint.sh

EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]
Expand Down
48 changes: 30 additions & 18 deletions scripts/docker/dists/debian12/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,52 +17,64 @@ 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
RUN mkdir -p /usr/local/src/repositories/freeradius-server
WORKDIR /usr/local/src/repositories/freeradius-server/

#
# Shallow clone the FreeRADIUS source
# Copy the FreeRADIUS directory in
#
ARG source=https://github.com/FreeRADIUS/freeradius-server.git
ARG release=v3.2.x
COPY . .

RUN git clone --depth 1 --single-branch --branch ${release} ${source}
WORKDIR freeradius-server
#
# Clean up tree - we want to build from the latest commit, not from
# any cruft left around on the local system
#
RUN git clean -fdxx \
&& git reset --hard HEAD

RUN [ -z "$release" ] || git checkout ${release}

#
# Install build dependencies
#
RUN git checkout ${release}; \
if [ -e ./debian/control.in ]; then \
RUN 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
# Work around fakeroot problems in Docker when building for different
# platforms - doesn't matter as we run as root in the container anyway.
#
#RUN make -j$(nproc) deb
RUN debian/rules debian/control \
&& dpkg-buildpackage --jobs=auto -b -uc

#
# Clean environment and run the server
#
FROM ${from}
ARG DEBIAN_FRONTEND=noninteractive

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 \
&& 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
&& ln -s /etc/freeradius /etc/raddb

COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
WORKDIR /
COPY scripts/docker/etc/docker-entrypoint.sh.deb docker-entrypoint.sh
RUN chmod +x docker-entrypoint.sh

EXPOSE 1812/udp 1813/udp
ENTRYPOINT ["/docker-entrypoint.sh"]
Expand Down
Loading

0 comments on commit c684d67

Please sign in to comment.