21 lines
939 B
Docker
21 lines
939 B
Docker
# authentik-gate-sync: the authentik-gate ingress class. Turns each Ingress of
|
|
# that class into an Authentik proxy gate plus the Traefik Ingress, ExternalName
|
|
# Service and network policies in front of it. Standard library only, so the
|
|
# image is the interpreter plus one file; runs unprivileged as its own user.
|
|
|
|
# The unit tests gate the image: the final stage copies the controller out of
|
|
# this stage, so a failing test fails the build.
|
|
FROM python:3.15-slim@sha256:2da676046630d7bf14c6764ae1143dc7fa0377a53f94bf5a642f0b214aca5bce AS test
|
|
WORKDIR /src
|
|
COPY controller.py test_controller.py ./
|
|
RUN python3 -B -m unittest -v
|
|
|
|
FROM python:3.15-slim@sha256:2da676046630d7bf14c6764ae1143dc7fa0377a53f94bf5a642f0b214aca5bce
|
|
|
|
RUN useradd --system --no-create-home --shell /usr/sbin/nologin controller
|
|
COPY --from=test /src/controller.py /opt/controller.py
|
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
USER controller
|
|
ENTRYPOINT ["python3", "/opt/controller.py"]
|