diff --git a/containers/apps/freeradius/Dockerfile b/containers/apps/freeradius/Dockerfile index dc6185d72c5..98b48293087 100644 --- a/containers/apps/freeradius/Dockerfile +++ b/containers/apps/freeradius/Dockerfile @@ -8,8 +8,6 @@ VOLUME /config # hadolint ignore=DL3008,DL3015,SC2086,SC2155 RUN \ - mkdir -p /defaults/raddb/ && \ - cp -Rf /etc/raddb/* /defaults/raddb/ && \ rm /docker-entrypoint.sh && \ rm -Rf /etc/raddb && \ ln -s /config /etc/raddb diff --git a/containers/apps/freeradius/docker-entrypoint.sh b/containers/apps/freeradius/docker-entrypoint.sh new file mode 100755 index 00000000000..041a74ece93 --- /dev/null +++ b/containers/apps/freeradius/docker-entrypoint.sh @@ -0,0 +1,33 @@ +#!/bin/sh +set -e + +if [ -f "/config/clients.conf" ]; then + echo "Radius config already exists, skipping config copy..." +else + echo "Radius config does not exist, copying..." + cp -Rf /defaults/raddb/* /config/ +fi + +chown -R freerad:freerad /config + +# this if will check if the first argument is a flag +# but only works if all arguments require a hyphenated flag +# -v; -SL; -f arg; etc will work, but not arg1 arg2 +if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then + set -- freeradius "$@" +fi + +# check for the expected command +if [ "$1" = 'freeradius' ]; then + shift + exec freeradius -f "$@" +fi + +# many people are likely to call "radiusd" as well, so allow that +if [ "$1" = 'radiusd' ]; then + shift + exec freeradius -f "$@" +fi + +# else default to run whatever the user wanted like "bash" or "sh" +exec "$@" diff --git a/containers/apps/freeradius/entrypoint.sh b/containers/apps/freeradius/entrypoint.sh old mode 100644 new mode 100755 index 041a74ece93..9c70a235654 --- a/containers/apps/freeradius/entrypoint.sh +++ b/containers/apps/freeradius/entrypoint.sh @@ -5,7 +5,7 @@ if [ -f "/config/clients.conf" ]; then echo "Radius config already exists, skipping config copy..." else echo "Radius config does not exist, copying..." - cp -Rf /defaults/raddb/* /config/ + cp -Rf /etc/freeradius/* /config/ fi chown -R freerad:freerad /config diff --git a/containers/apps/freeradius/latest-base.sh b/containers/apps/freeradius/latest-base.sh old mode 100644 new mode 100755 diff --git a/containers/apps/freeradius/latest-version.sh b/containers/apps/freeradius/latest-version.sh old mode 100644 new mode 100755