From 3626f45eaa705cefbd243cb638b27f601b12104a Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Fri, 15 Sep 2023 20:48:07 +0300 Subject: [PATCH] mumble dockerfile --- Dockerfile.multistage | 110 +++++++++++++++++++++++++++++------------- 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/Dockerfile.multistage b/Dockerfile.multistage index 5d4b5e5..5b89604 100644 --- a/Dockerfile.multistage +++ b/Dockerfile.multistage @@ -1,42 +1,84 @@ -FROM ubuntu:latest as build_stage +FROM ubuntu:focal -ENV TZ=Europe/Moscow \ - DEBIAN_FRONTEND=noninteractive +# needed to install tzdata +ARG DEBIAN_FRONTEND=noninteractive -RUN apt-get update -RUN apt install -y \ - git \ - build-essential \ - cmake \ - pkg-config \ - qtbase5-dev \ - qt5-qmake \ - 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 \ - libopus-dev \ - libspeechd-dev \ - libavahi-compat-libdnssd-dev \ - libxcb-xinerama0 \ - libzeroc-ice-dev \ - libpoco-dev +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 /opt +WORKDIR /root RUN git clone -b 1.5.x https://github.com/mumble-voip/mumble.git WORKDIR /opt/mumble RUN git submodule update --init --recursive +WORKDIR /root/mumble/build -WORKDIR /opt/mumble/build -RUN cmake -Dclient=OFF -Doverlay-xcompile=OFF .. -RUN cmake --build . \ No newline at end of file +RUN git submodule update --init --recursive +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 + +ARG DEBIAN_FRONTEND=noninteractive + +RUN adduser murmur +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/* + +COPY --from=0 /root/mumble/build/mumble-server /usr/bin/mumble-server +COPY --from=0 /root/mumble/scripts/murmur.ini /etc/murmur/murmur.ini + +RUN mkdir /var/lib/murmur && \ + chown --verbose murmur:murmur /var/lib/murmur && \ + sed -i 's/^database=$/database=\/var\/lib\/murmur\/murmur.sqlite/' /etc/murmur/murmur.ini + +EXPOSE 64738/tcp 64738/udp 50051 +USER murmur + +CMD /usr/bin/mumble-server -v -fg -ini /etc/murmur/murmur.ini \ No newline at end of file