2022-05-07 14:17:21 +00:00
|
|
|
FROM ubuntu:20.04 as base
|
2022-04-03 09:27:10 +00:00
|
|
|
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
|
|
|
libcap2 \
|
|
|
|
libzeroc-ice3.7 \
|
|
|
|
'^libprotobuf[0-9]+$' \
|
|
|
|
libavahi-compat-libdnssd1 \
|
|
|
|
libqt5core5a \
|
|
|
|
libqt5network5 \
|
|
|
|
libqt5sql5 \
|
|
|
|
libqt5sql5-mysql \
|
|
|
|
libqt5sql5-psql \
|
|
|
|
libqt5sql5-sqlite \
|
|
|
|
libqt5xml5 \
|
|
|
|
libqt5dbus5 \
|
|
|
|
ca-certificates \
|
|
|
|
# Workaround for systems like CentOS 7 which won't load libQt5Core.so as expected:
|
|
|
|
# see also https://stackoverflow.com/a/68897099/
|
|
|
|
binutils \
|
|
|
|
&& find /lib/ -name 'libQt5Core.so.*' -exec strip --remove-section=.note.ABI-tag {} \; \
|
|
|
|
&& apt-get -y purge binutils \
|
|
|
|
# End of workaround
|
|
|
|
&& apt-get clean \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM base as build
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
|
|
|
git cmake build-essential ca-certificates pkg-config \
|
|
|
|
libssl-dev \
|
|
|
|
qtbase5-dev \
|
|
|
|
qttools5-dev \
|
|
|
|
qttools5-dev-tools \
|
|
|
|
libboost-dev \
|
|
|
|
libprotobuf-dev \
|
|
|
|
protobuf-compiler \
|
|
|
|
libprotoc-dev \
|
|
|
|
libcap-dev \
|
|
|
|
libxi-dev \
|
|
|
|
libavahi-compat-libdnssd-dev \
|
|
|
|
libzeroc-ice-dev \
|
|
|
|
python3 \
|
|
|
|
git \
|
|
|
|
&& apt-get clean \
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
ADD ./scripts/* /mumble/scripts/
|
|
|
|
WORKDIR /mumble/repo
|
|
|
|
|
|
|
|
ARG MUMBLE_VERSION=latest
|
2022-05-10 17:35:15 +00:00
|
|
|
ARG MUMBLE_BUILD_NUMBER=""
|
2022-04-03 09:27:10 +00:00
|
|
|
ARG MUMBLE_CMAKE_ARGS=""
|
|
|
|
|
2022-09-12 12:54:29 +00:00
|
|
|
# Clone the repo, build it and finally copy the default server ini file. Since this file may be at different locations and Docker
|
|
|
|
# doesn't support conditional copies, we have to ensure that regardless of where the file is located in the repo, it will end
|
|
|
|
# up at a unique path in our build container to be copied further down.
|
|
|
|
RUN /mumble/scripts/clone.sh && /mumble/scripts/build.sh \
|
|
|
|
&& /mumble/scripts/copy_one_of.sh ./scripts/murmur.ini ./auxiliary_files/mumble-server.ini default_config.ini
|
2022-04-03 09:27:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FROM base
|
|
|
|
ARG MUMBLE_UID=1000
|
|
|
|
ARG MUMBLE_GID=1000
|
|
|
|
|
|
|
|
RUN groupadd --gid $MUMBLE_GID mumble && useradd --uid $MUMBLE_UID --gid $MUMBLE_GID mumble
|
|
|
|
|
|
|
|
COPY --from=build /mumble/repo/build/mumble-server /usr/bin/mumble-server
|
2022-09-12 12:54:29 +00:00
|
|
|
COPY --from=build /mumble/repo/default_config.ini /etc/mumble/bare_config.ini
|
2022-04-03 09:27:10 +00:00
|
|
|
|
|
|
|
RUN mkdir -p /data && chown -R mumble:mumble /data && chown -R mumble:mumble /etc/mumble
|
|
|
|
USER mumble
|
|
|
|
EXPOSE 64738/tcp 64738/udp
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
|
|
|
|
|
|
VOLUME ["/data"]
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
|
|
CMD ["/usr/bin/mumble-server", "-fg"]
|
|
|
|
|