[self-hosted] Add a UBI image variant for the combined server (#7953)

* [self-hosted] Add a UBI image variant for the combined server

OpenShift and other Red Hat environments expect UBI-based images that run
as an arbitrary non-root UID. The proxy and rootless client already ship
-ubi variants; this adds the same for netbird-server, published as
<version>-ubi and ubi-latest for amd64 and arm64.

* [self-hosted] Check the license output path before creating temp files

The existing-output exit ran before the cleanup trap was registered, so it
left the two mktemp files behind.

* [self-hosted] Certify the netbird-server UBI image

Adds netbird-server to the Red Hat certification components. Its Partner
Connect component ID goes in the REDHAT_CERT_ID_NETBIRD_SERVER repository
variable.
This commit is contained in:
Nicolas Frati
2026-10-06 01:04:36 +02:00
committed by GitHub
parent eb5a98c059
commit d6340ba0de
4 changed files with 149 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
FROM registry.access.redhat.com/ubi9/ubi-minimal@sha256:7fbeae18dc9476399f565e68255f602a3374ea8614ba3d14843565131a13ff93
ARG TARGETPLATFORM
ARG VERSION=dev
ARG RELEASE=1
LABEL name="netbird-server" \
maintainer="NetBird <dev@netbird.io>" \
vendor="NetBird GmbH" \
version="${VERSION}" \
release="${RELEASE}" \
summary="NetBird Server" \
description="NetBird Server runs the Management, Signal, Relay and STUN services of a self-hosted NetBird deployment in a single process."
COPY --chmod=0555 ${TARGETPLATFORM}/netbird-server /go/bin/netbird-server
COPY licenses/ /licenses/
# Only the data directory shares the root group for arbitrary non-root UIDs.
# Runtime-created keys and databases retain the application's restrictive modes.
RUN mkdir -p /var/lib/netbird /etc/netbird && \
chown 1000:0 /var/lib/netbird && \
chmod 0770 /var/lib/netbird && \
chmod -R a+rX /licenses
USER 1000:0
ENV HOME=/var/lib/netbird
# Runtimes such as OpenShift and Podman reserve ports below 1024 for root, so
# the mounted config must set server.listenAddress to an unprivileged port.
EXPOSE 8443 3478/udp
STOPSIGNAL SIGTERM
ENTRYPOINT ["/go/bin/netbird-server"]
CMD ["--config", "/etc/netbird/config.yaml"]