murmur/Dockerfile

76 lines
1.7 KiB
Docker

FROM debian:bullseye AS builder
# Build-time dependencies
RUN apt-get update -yqq && apt-get install -yqq \
ca-certificates \
build-essential \
cmake \
pkg-config \
qtbase5-dev \
libboost-dev \
libasound2-dev \
libssl-dev \
libspeechd-dev \
libzeroc-ice-dev \
libpulse-dev \
libcap-dev \
libprotobuf-dev \
libprotoc-dev \
protobuf-compiler \
protobuf-compiler-grpc \
libgrpc++-dev \
libogg-dev \
libavahi-compat-libdnssd-dev \
libsndfile1-dev \
libbz2-dev \
libxi-dev \
git --no-install-recommends
WORKDIR /usr/src/murmur
RUN \
git clone https://github.com/mumble-voip/mumble.git . \
&& git checkout master \
&& git submodule init \
&& git submodule update
WORKDIR /usr/src/murmur/build
RUN \
cmake -Dclient=OFF -DCMAKE_BUILD_TYPE=Release -Dgrpc=ON .. \
&& make -j $(nproc)
FROM debian:bullseye
EXPOSE 64738/tcp 64738/udp
ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user \
&& chown -R user:user $HOME
WORKDIR $HOME
# Runtime dependencies
RUN apt-get update && apt-get install -yqq \
ca-certificates \
'libprotobuf[0-9]+$' \
libqt5core5a \
libqt5dbus5 \
libqt5xml5 \
libqt5sql5 \
libavahi-compat-libdnssd1 \
libqt5network5 \
libcap2 \
'libgrpc[0-9]+$' \
libgrpc++1 \
libzeroc-ice3.7 \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/src/murmur/build/murmurd /usr/bin/murmurd
USER user
COPY --from=builder --chown=user:user /usr/src/murmur/scripts/murmur.ini /data/murmur.ini
VOLUME ["/data"]
ENTRYPOINT [ "/usr/bin/murmurd" ]
CMD [ "-fg", "-v", "-ini", "/data/murmur.ini" ]