31 lines
1.0 KiB
Docker
Executable File
31 lines
1.0 KiB
Docker
Executable File
FROM debian:12-slim
|
|
|
|
RUN apt-get update \
|
|
&& apt-get -y upgrade \
|
|
&& apt-get -y install bash curl bzip2 ffmpeg cifs-utils alsa-utils libicu72
|
|
|
|
ENV ROON_SERVER_PKG RoonServer_linuxx64.tar.bz2
|
|
ENV ROON_SERVER_URL https://download.roonlabs.net/builds/${ROON_SERVER_PKG}
|
|
ENV ROON_DATAROOT /data
|
|
ENV ROON_ID_DIR /data
|
|
|
|
ENV ROON_DATAROOT=/Roon/data
|
|
ENV ROON_ID_DIR=/Roon/data
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
|
|
# Informational only — requires --net=host for multicast discovery
|
|
EXPOSE 9003/udp 9100-9200/tcp 9200-9250/tcp 9330-9339/tcp 55000/tcp
|
|
|
|
# Healthcheck uses /proc directly instead of pgrep to avoid procps dependency
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=120s --retries=3 \
|
|
CMD grep -ql '[R]oonServer.dll' /proc/[0-9]*/cmdline 2>/dev/null || exit 1
|
|
|
|
|
|
STOPSIGNAL SIGTERM
|
|
|
|
# entrypoint.sh downloads RoonServer on first run (to /Roon/app), then
|
|
# exec's into Server/RoonServer — the stock bash launcher that handles
|
|
# .NET runtime discovery, ulimit, self-update swap, and restart (exit 122).
|
|
ENTRYPOINT ["/entrypoint.sh"]
|