90 lines
2.2 KiB
Docker
90 lines
2.2 KiB
Docker
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
|
|
ARG SUPER_USER_PASSWORD=12345678
|
|
|
|
#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/mumble-server.ini
|
|
|
|
RUN sed -i 's/^database=$/database=\/opt\/mumble\/db\/murmur.sqlite/' /opt/mumble/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/ && \
|
|
/opt/mumble/mumble-server -v -fg -ini /opt/mumble/ini/mumble-server.ini -supw $(SUPER_USER_PASSWORD) && \
|
|
/opt/mumble/mumble-server -v -fg -ini /opt/mumble/ini/mumble-server.ini
|