From bbbd390d73a4af318dab583fcfe3f6dc58deb479 Mon Sep 17 00:00:00 2001 From: L_DelOff Date: Sun, 17 Sep 2023 19:05:17 +0300 Subject: [PATCH] django --- docker-compose.yml | 35 ++++++++++++++++++---- mumble-django/Dockerfile | 34 +++++++++++++++++++++ mumble-django/IceEncodingVersion.patch | 11 +++++++ Dockerfile.multistage => server/Dockerfile | 9 +----- 4 files changed, 75 insertions(+), 14 deletions(-) create mode 100644 mumble-django/Dockerfile create mode 100644 mumble-django/IceEncodingVersion.patch rename Dockerfile.multistage => server/Dockerfile (91%) diff --git a/docker-compose.yml b/docker-compose.yml index 1e1d9fe..89eed24 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,36 @@ version: '3' services: - server: - build: - context: . - dockerfile: Dockerfile.multistage + + mumble-srv: + build: server/. + container_name: murmur + restart: unless-stopped volumes: - /mnt/data/mumble/server/ini:/opt/mumble/ini:rw - - /mnt/data/mumble/server/db:/opt/mumble/db:rw + - /mnt/data/mumble/server/db:/opt/mumble/db:rw + - /mnt/data/nginx/letsencrypt:/etc/letsencrypt:ro ports: - 64738:64738/tcp - 64738:64738/udp - - 50051:50051 \ No newline at end of file + - 50051:50051 + networks: + - mumble-net + + mumble-admin: + build: mumble-django/. + container_name: admin + restart: unless-stopped + depends_on: + - mumble-srv + ports: + - 9999:9000 + volumes: + - /etc/localtime:/etc/localtime:ro + - /mnt/data/mumble/test:/mumble + - /mnt/data/mumble/mumble-django:/opt/mumble-django/db + - mumble_ice:/opt/mumble/ice + environment: + - MURMUR_CONNSTR=Meta:tcp -h murmur -p 6502 + - MURMUR_ICESECRET='' + networks: + - mumble-net \ No newline at end of file diff --git a/mumble-django/Dockerfile b/mumble-django/Dockerfile new file mode 100644 index 0000000..115899f --- /dev/null +++ b/mumble-django/Dockerfile @@ -0,0 +1,34 @@ +FROM debian:stretch-slim + +RUN apt-get update +RUN apt install -y mercurial patch + +WORKDIR /opt +RUN hg clone https://bitbucket.org/Svedrin/mumble-django + +COPY IceEncodingVersion.patch /opt/mumble-django +WORKDIR /opt/mumble-django +RUN patch -p1 < IceEncodingVersion.patch + +RUN mkdir -p /opt/mumble/ice + +RUN apt-get install -y python-pil python-pip + +# Install older version of django +RUN pip install django==1.7 + +# Install zeroc-ice +RUN apt-get install -y libssl-dev libbz2-dev +RUN pip install zeroc-ice + +# mumble-django is looking for Murmur.ice in /usr/share/slice +# our share volume will mount it at /opt/mumble/ice/Murmur.ice +# link it to the correct place +RUN mkdir -p /usr/share/slice +RUN ln -s /opt/mumble/ice/Murmur.ice /usr/share/slice/Murmur.ice + +VOLUME ["/opt/mumble-django/db"] + +EXPOSE 9000/tcp + +CMD [ "python", "/opt/mumble-django/pyweb/manage.py", "runserver", "0.0.0.0:9000" ] diff --git a/mumble-django/IceEncodingVersion.patch b/mumble-django/IceEncodingVersion.patch new file mode 100644 index 0000000..f5ff4c1 --- /dev/null +++ b/mumble-django/IceEncodingVersion.patch @@ -0,0 +1,11 @@ +diff -ruN mumble-django/pyweb/mumble/MumbleCtlIce.py mumble-django.new/pyweb/mumble/MumbleCtlIce.py +--- mumble-django/pyweb/mumble/MumbleCtlIce.py 2020-08-14 19:42:55.375078615 +0200 ++++ mumble-django.new/pyweb/mumble/MumbleCtlIce.py 2020-08-14 19:50:04.321710768 +0200 +@@ -94,6 +94,7 @@ + prop = Ice.createProperties([]) + prop.setProperty("Ice.ImplicitContext", "Shared") + prop.setProperty("Ice.MessageSizeMax", "65535") ++ prop.setProperty("Ice.Default.EncodingVersion", "1.0") + + idd = Ice.InitializationData() + idd.properties = prop diff --git a/Dockerfile.multistage b/server/Dockerfile similarity index 91% rename from Dockerfile.multistage rename to server/Dockerfile index 5e66a2b..d67fd34 100644 --- a/Dockerfile.multistage +++ b/server/Dockerfile @@ -44,8 +44,6 @@ RUN cmake -Dclient=OFF -DCMAKE_BUILD_TYPE=Release -Dgrpc=ON .. || \ ) RUN make -j $(nproc) - - # Clean distribution stage FROM ubuntu:focal as prod @@ -74,19 +72,14 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ RUN mkdir /opt/mumble && \ mkdir /opt/mumble/db && \ mkdir /opt/mumble/ini - #&& \ - #chown --verbose -R mumble:mumble /opt/mumble 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 chown --verbose -R mumble:mumble /opt/mumble - RUN sed -i 's/^database=$/database=\/opt\/mumble\/db\/murmur.sqlite/' /opt/mumble/mumble-server.ini EXPOSE 64738/tcp 64738/udp 50051 -#USER mumble + WORKDIR / CMD cp -n /opt/mumble/mumble-server.ini /opt/mumble/ini/ && \ -# cp -n /opt/mumble/murmur.sqlite /opt/mumble/db/ && \ /opt/mumble/mumble-server -v -fg -ini /opt/mumble/ini/mumble-server.ini