]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
docker: add alpine template and debian sid
authorMatthew Newton <matthew-git@newtoncomputing.co.uk>
Thu, 2 May 2024 17:45:48 +0000 (18:45 +0100)
committerMatthew Newton <matthew-git@newtoncomputing.co.uk>
Wed, 22 May 2024 20:12:07 +0000 (21:12 +0100)
Add python3 to alpine in prep for newer images that don't have python2. For now
this is also still the newest alpine we can go before the couchbase module has
problems building.

scripts/docker/docker.mk
scripts/docker/m4/Dockerfile.alpine.m4 [new file with mode: 0644]
scripts/docker/m4/Dockerfile.m4

index 040fb718c64a712c8b5fb8146eb13a572b49511d..8d1c5da8ed457b74580646b0492bb9ef54f920bd 100644 (file)
@@ -69,7 +69,7 @@ endif
 #
 
 define ADD_DOCKER_REGEN
-    $$(DIST_DIR)/${1}/Dockerfile: $(DOCKER_DIR)/m4/Dockerfile.m4 $(DOCKER_DIR)/m4/Dockerfile.deb.m4 $(DOCKER_DIR)/m4/Dockerfile.rpm.m4 $(DOCKER_DIR)/docker.mk
+    $$(DIST_DIR)/${1}/Dockerfile: $(DOCKER_DIR)/m4/Dockerfile.m4 $(DOCKER_DIR)/m4/Dockerfile.deb.m4 $(DOCKER_DIR)/m4/Dockerfile.rpm.m4 $(DOCKER_DIR)/m4/Dockerfile.alpine.m4 $(DOCKER_DIR)/docker.mk
        $$(Q)echo REGEN ${1}/Dockerfile
        $$(Q)m4 -I $(DOCKER_DIR)/m4 -D D_NAME=${1} -D D_TYPE=docker $$< > $$@
 
diff --git a/scripts/docker/m4/Dockerfile.alpine.m4 b/scripts/docker/m4/Dockerfile.alpine.m4
new file mode 100644 (file)
index 0000000..c03a26a
--- /dev/null
@@ -0,0 +1,83 @@
+ARG from=DOCKER_IMAGE
+FROM ${from} as build
+
+#
+#  Install build tools
+#
+RUN apk update
+RUN apk add git gcc make
+
+#
+#  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
+#
+# essential
+RUN apk add libc-dev talloc-dev
+RUN apk add openssl openssl-dev
+RUN apk add linux-headers
+# general
+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 python3-dev
+# databases
+RUN apk add hiredis-dev libmemcached-dev gdbm-dev libcouchbase-dev
+# sql
+RUN apk add postgresql-dev mariadb-dev unixodbc-dev sqlite-dev
+
+#
+#  Build the server
+#
+RUN ./configure --prefix=/opt
+RUN make -j2
+RUN make install
+RUN rm /opt/lib/*.a
+
+#
+#  Clean environment and run the server
+#
+FROM ${from}
+COPY --from=build /opt /opt
+
+#
+# These are needed for the server to start
+#
+RUN apk update \
+    && apk add talloc libressl pcre libwbclient tzdata \
+    \
+#
+#  Libraries that are needed dependent on which modules are used
+#  Some of these (especially the languages) are huge. A reasonable
+#  selection has been enabled here. If you use modules needing
+#  other dependencies then install any others required in your
+#  local Dockerfile.
+#
+    && 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 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
+
+EXPOSE 1812/udp 1813/udp
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["radiusd"]
index eff9070efc06f9fea5c145c4d4dcaf6eedc8b8fc..873421ca230ffcbf92c7faebb6f6fa8805dad27c 100644 (file)
@@ -17,9 +17,11 @@ define([p_SET], [
 ])
 dnl            D_NAME          PKG_TYPE      OS_NAME   OS_VER  OS_CODENAME     DOCKER_IMAGE
 ifelse(
+       D_NAME, [alpine],       [p_SET([alpine], [alpine], [3.13], [alpine],    [alpine:3.13])],
        D_NAME, [debian10],     [p_SET([deb], [debian], [10],   [buster],       [debian:buster])],
        D_NAME, [debian11],     [p_SET([deb], [debian], [11],   [bullseye],     [debian:bullseye])],
        D_NAME, [debian12],     [p_SET([deb], [debian], [12],   [bookworm],     [debian:bookworm])],
+       D_NAME, [debiansid],    [p_SET([deb], [debian], [99],   [sid],          [debian:sid])],
        D_NAME, [ubuntu18],     [p_SET([deb], [ubuntu], [18],   [bionic],       [ubuntu:18.04])],
        D_NAME, [ubuntu20],     [p_SET([deb], [ubuntu], [20],   [focal],        [ubuntu:20.04])],
        D_NAME, [ubuntu22],     [p_SET([deb], [ubuntu], [22],   [jammy],        [ubuntu:22.04])],