-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
95 lines (80 loc) · 2.77 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
FROM debian:bookworm-slim AS build
# https://github.com/mumble-voip/mumble/issues/5968#issuecomment-1320567610
ARG TAG="v1.5.517"
ARG BRANCH="master"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
git \
build-essential \
cmake \
pkg-config \
qtbase5-dev \
qtchooser \
qt5-qmake \
qtbase5-dev-tools \
qttools5-dev \
qttools5-dev-tools \
libqt5svg5-dev \
libboost-dev \
libssl-dev \
libprotobuf-dev \
protobuf-compiler \
libprotoc-dev \
libcap-dev \
libxi-dev \
libasound2-dev \
libogg-dev \
libsndfile1-dev \
libspeechd-dev \
libavahi-compat-libdnssd-dev \
libxcb-xinerama0 \
libzeroc-ice-dev \
libpoco-dev
WORKDIR /root/mumble
RUN git clone https://github.com/mumble-voip/mumble.git /root/mumble && \
git fetch --all --tags --prune && \
# https://github.com/mumble-voip/mumble/issues/4065#issuecomment-633082522
# git checkout ${BRANCH} && \
git checkout tags/${TAG} && \
# https://github.com/mumble-voip/mumble/issues/6161#issuecomment-1620593761
git submodule update --init --recursive && \
# https://github.com/mumble-voip/mumble/blob/master/docs/dev/build-instructions/build_linux.md#running-cmake
mkdir build && cd build && \
# https://github.com/mumble-voip/mumble/blob/master/docs/dev/build-instructions/cmake_options.md#available-options
# https://github.com/mumble-voip/mumble/blob/master/docs/dev/build-instructions/cmake_options.md#overlay-xcompile
# https://github.com/mumble-voip/mumble/blob/master/docs/dev/build-instructions/build_linux.md#dependencies
cmake -Dserver=ON -Dclient=OFF -DCMAKE_BUILD_TYPE=Release -Dice=ON -Dtracy=OFF -Doverlay-xcompile=OFF .. && \
make && \
strip --remove-section=.note.ABI-tag /root/mumble/build/mumble-server
FROM debian:bookworm-slim
LABEL maintainer="Akito <[email protected]>"
LABEL version="0.1.0"
# Not necessary, but the server log shows timestamps.
ARG TZ="Europe/Berlin"
RUN useradd --user-group --system --no-log-init \
--uid 800 --shell /bin/bash murmur
RUN mkdir /data && chown -R murmur:murmur /data
RUN apt-get update && apt-get install -y \
libcap2 \
libzeroc-ice3.7 \
'^libprotobuf[0-9]+$' \
'^libgrpc[0-9]+$' \
libgrpc++1 \
libavahi-compat-libdnssd1 \
libqt5core5a \
libqt5network5 \
libqt5sql5 \
libqt5xml5 \
libqt5dbus5 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /root/mumble/build/mumble-server /usr/bin/murmurd
ENV TZ=${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
echo $TZ > /etc/timezone
EXPOSE 64738/tcp
EXPOSE 64738/udp
EXPOSE 50051
USER murmur
# Read murmur.ini and murmur.sqlite from /data/
VOLUME ["/data"]
ENTRYPOINT ["/usr/bin/murmurd", "-fg", "-v", "-ini", "/data/murmur.ini"]