FROM debian:bookworm 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/mumble RUN \ git clone https://github.com/mumble-voip/mumble.git . \ && git checkout master \ && git submodule init \ && git submodule update WORKDIR /usr/src/mumble/build RUN \ cmake -Dclient=OFF -DCMAKE_BUILD_TYPE=Release -Dgrpc=ON .. \ && make -j $(nproc) FROM debian:bookworm 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/mumble/build/mumble-server /usr/bin/mumble-server USER user COPY --from=builder --chown=user:user /usr/src/mumble/auxiliary_files/mumble-server.ini /data/mumble-server.ini VOLUME ["/data"] ENTRYPOINT [ "/usr/bin/mumble-server" ] CMD [ "-fg", "-v", "-ini", "/data/mumble-server.ini" ]