kanidm/rlm_python/Dockerfile

70 lines
1.9 KiB
Docker
Raw Permalink Normal View History

ARG BASE_IMAGE=opensuse/tumbleweed:latest
FROM ${BASE_IMAGE} AS repos
RUN \
--mount=type=cache,id=zypp,target=/var/cache/zypp \
zypper mr -k repo-oss; \
zypper mr -k repo-non-oss; \
zypper mr -k repo-update; \
zypper ref --force; \
zypper -v dup -y
# ======================
FROM repos
EXPOSE 1812 1813
ARG RADIUS_USER=radiusd
RUN \
--mount=type=cache,id=zypp,target=/var/cache/zypp \
zypper install -y \
freeradius-client \
freeradius-server \
freeradius-server-python3 \
freeradius-server-utils \
hostname \
2023-03-07 02:50:45 +01:00
python3 \
python3-devel \
2023-03-07 02:50:45 +01:00
python3-pip \
timezone \
iproute2 \
iputils \
openssl \
curl
# Don't put in the TZ at build time - it needs to be bind mounted at runtime
# else we are forcing things on people.
# RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ADD rlm_python/mods-available/ /etc/raddb/mods-available/
COPY rlm_python/sites-available/ /etc/raddb/sites-available/
# Set a working directory of /etc/raddb
WORKDIR /etc/raddb
# Enable the python and cache module.
2023-02-17 08:02:01 +01:00
RUN ln -s /etc/raddb/mods-available/python3 /etc/raddb/mods-enabled/python3 && \
ln -s /etc/raddb/sites-available/check-eap-tls /etc/raddb/sites-enabled/check-eap-tls
# disable auth via methods we don't support!
RUN rm /etc/raddb/mods-available/sql && \
rm /etc/raddb/mods-enabled/{passwd,totp}
# Allows the radiusd user to write to the directory
RUN chown -R $RADIUS_USER. /etc/raddb/ && \
2023-02-17 08:02:01 +01:00
chmod 775 /etc/raddb/certs && \
chmod 640 /etc/raddb/clients.conf
RUN mkdir -p /pkg/pykanidm/
COPY pykanidm/ /pkg/pykanidm/
# install the package and its dependencies
RUN python3 -m pip install --no-cache-dir --no-warn-script-location /pkg/pykanidm
2023-02-17 08:02:01 +01:00
COPY rlm_python/radius_entrypoint.py /radius_entrypoint.py
2022-10-02 03:28:58 +02:00
ENV KANIDM_CONFIG_FILE="/data/kanidm"
2023-03-07 02:50:45 +01:00
RUN chmod a+r /etc/raddb/certs/ -R
USER $RADIUS_USER
2023-02-17 08:02:01 +01:00
2022-09-29 02:08:15 +02:00
CMD [ "/usr/bin/python3", "/radius_entrypoint.py" ]