FROM ubuntu:focal AS builder # needed to install tzdata ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install --no-install-recommends -y \ ca-certificates \ git \ build-essential \ cmake \ pkg-config \ qt5-default \ libboost-dev \ libasound2-dev \ libssl-dev \ libspeechd-dev \ libzeroc-ice-dev \ libpulse-dev \ libcap-dev \ libprotobuf-dev \ protobuf-compiler \ protobuf-compiler-grpc \ libprotoc-dev \ libogg-dev \ libavahi-compat-libdnssd-dev \ libsndfile1-dev \ libgrpc++-dev \ libxi-dev \ libbz2-dev \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /root RUN git clone -b 1.5.x https://github.com/mumble-voip/mumble.git WORKDIR /root/mumble RUN git submodule update --init --recursive WORKDIR /root/mumble/build RUN cmake -Dclient=OFF -DCMAKE_BUILD_TYPE=Release -Dgrpc=ON .. || \ ( cat \ /root/mumble/build/CMakeFiles/CMakeOutput.log \ /root/mumble/build/CMakeFiles/CMakeError.log \ && false \ ) RUN make -j $(nproc) # Clean distribution stage FROM ubuntu:focal as prod ARG DEBIAN_FRONTEND=noninteractive #RUN adduser mumble RUN apt-get update && apt-get install --no-install-recommends -y \ libcap2 \ libzeroc-ice3.7 \ '^libprotobuf[0-9]+$' \ '^libgrpc[0-9]+$' \ libgrpc++1 \ libavahi-compat-libdnssd1 \ libqt5core5a \ libqt5network5 \ libqt5sql5 \ libqt5sql5-mysql \ libqt5sql5-psql \ libqt5sql5-sqlite \ libqt5xml5 \ libqt5dbus5 \ ca-certificates \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN mkdir /opt/mumble && \ mkdir /opt/mumble/db && \ mkdir /opt/mumble/ini COPY --from=builder /root/mumble/build/mumble-server /opt/mumble COPY --from=builder /root/mumble/build/mumble-server.ini /opt/mumble/ini/mumble-server.ini RUN sed -i 's/^database=$/database=\/opt\/mumble\/db\/murmur.sqlite/' /opt/mumble/ini/mumble-server.ini EXPOSE 64738/tcp 64738/udp 50051 VOLUME ["/opt/mumble/ini"] VOLUME ["/opt/mumble/db"] WORKDIR / #CMD cp -n /opt/mumble/mumble-server.ini /opt/mumble/ini/ && \ CMD /opt/mumble/mumble-server -v -fg -ini /opt/mumble/ini/mumble-server.ini