3 docker_example_mumble_mumo_postgres
azlux edytuje tę stronę 2022-05-11 14:48:22 +02:00
version: "3"
services:
    mumble-server:
        image: mumblevoip/mumble-server
        container_name: mumble-server
        hostname: mumble-server
        restart: on-failure
        environment:
            MUMBLE_CONFIG_DATABASE: mumble
            MUMBLE_CONFIG_DB_DRIVER: QPSQL
            MUMBLE_CONFIG_DB_USERNAME: ${MUMBLE_DB_USERNAME}
            MUMBLE_CONFIG_DB_PASSWORD: ${MUMBLE_DB_PASSWORD}
            MUMBLE_CONFIG_DB_HOST: postgres
            MUMBLE_CONFIG_DB_PORT: 5432
            MUMBLE_CONFIG_ICE: tcp -h 127.0.0.1 -p 6502
            MUMBLE_CONFIG_IMAGEMESSAGELENGTH: 1310720
            MUMBLE_CONFIG_REGISTERNAME: Main Channel Name
            MUMBLE_CONFIG_USERNAME: '[ -=\\w\\[\\]\\{\\}\\(\\)\\@\\|\\.]+'
            MUMBLE_CONFIG_CHANNELNAME: '[ \\-=\\w\\#\\[\\]\\{\\}\\(\\)\\@\\|\\%\\'']+'
            MUMBLE_CONFIG_WELCOMETEXT: 'Hello there !'
            MUMBLE_VERBOSE: 1
        ports:
            - 64738:64738
            - 64738:64738/udp
        depends_on:
            - postgres

    mumble-mumo:
        image: mumblevoip/mumo
        container_name: mumble-mumo
        restart: on-failure
        volumes:
            - ../data/mumo:/data
        network_mode : "service:mumble-server"
        depends_on:
            - mumble-server

    postgres:
        image: postgres:14
        container_name: postgres
        hostname: postgres
        restart: on-failure
        expose:
            - 5432
        environment:
            POSTGRES_USER: root
            POSTGRES_PASSWORD: ${POSTGRES_ROOT_PASSWORD}
        volumes:
            - ../data/postgres/data:/var/lib/postgresql/data

Because Mumble-Moderator (MUMO) need Ice access, I run it with a shared network as mumble-server. This way, Mumo is local for mumble-server, so 127.0.0.1 can be use to reach Ice port.

All ${XXXXX} variables are inside the .env file, this avoid people how have access to my docker-compose to get the sensitives information (See official docs)