FROM debian:buster AS builder

# Build-time dependencies
RUN apt-get update -yqq && apt-get install -yqq \
		ca-certificates \
		build-essential \
		pkg-config \
		qt5-default \
		libqt5svg5* \
		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/murmur
COPY 0001-Fix-ssl.patch /
RUN \
    git clone https://github.com/mumble-voip/mumble.git . \
	&& git checkout master \
        && git apply /0001-Fix-ssl.patch \
	&& git submodule init \
	&& git submodule update

RUN \
    qmake -recursive main.pro CONFIG+="no-client no-g15 no-bonjour grpc" \
	&& make release


FROM debian:buster
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 \
		libqt5network5 \
		libcap2 \
		'libgrpc[0-9]+$' \
		libgrpc++1 \
		libzeroc-ice3.7 \
	&& apt-get clean && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/src/murmur/release/murmurd /usr/bin/murmurd

USER user

ENTRYPOINT [ "/usr/bin/murmurd" ]
CMD [ "-fg", "-v", "-ini", "/data/murmur.ini" ]