services:
    traccar:
        image: "traccar/traccar:${TRACCAR_VERSION}"
        container_name: "traccar-traccar-${CONTEXT}"
        networks:
            traccar-default:
        profiles: ["full", "traccar"]
        ulimits:
            nproc: ${ULIMIT_NPROC-65535}
            nofile:
                soft: ${ULIMIT_NPROC-65535}
                hard: ${ULIMIT_NPROC-65535}
        extends:
            file: common-settings.yaml
            service: common-settings
        ports:
            - "${TRACCAR_WEBUI_PORT}:8082"
            - "${TRACCAR_GPS_PORT_EXTERNAL}:${TRACCAR_GPS_PORT_INTERNAL}"
            - "${TRACCAR_CLIENT_PORT_EXTERNAL}:${TRACCAR_CLIENT_PORT_INTERNAL}"
        volumes:
            - /opt/docker-data/traccar-${CONTEXT}/traccar/config/traccar.xml:/opt/traccar/conf/traccar.xml:ro
            - /opt/docker-data/traccar-${CONTEXT}/traccar/data/data:/opt/traccar/data:rw
            - /opt/docker-data/traccar-${CONTEXT}/traccar/data/logs:/opt/traccar/logs:rw
            - /etc/timezone:/etc/timezone:ro
            - /etc/localtime:/etc/localtime:ro
    mysql:
        image: "mysql:${MYSQL_VERSION}"
        container_name: "traccar-mysql-${CONTEXT}"
        networks:
            traccar-default:
        profiles: ["full", "mysql"]
        ulimits:
            nproc: ${ULIMIT_NPROC-65535}
            nofile:
                soft: ${ULIMIT_NPROC-65535}
                hard: ${ULIMIT_NPROC-65535}
        extends:
            file: common-settings.yaml
            service: common-settings
        ports:
            - "${MYSQL_PORT}:3306"
        volumes:
            - /opt/docker-data/traccar-${CONTEXT}/mysql/config/db:/etc/mysql/conf.d
            - /opt/docker-data/traccar-${CONTEXT}/mysql/config/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
            - /opt/docker-data/traccar-${CONTEXT}/mysql/data:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            MYSQL_DATABASE: ${MYSQL_DATABASE}
            MYSQL_USER: ${MYSQL_USER}
            MYSQL_PASSWORD: ${MYSQL_PASSWORD}
            MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST}
networks:
    traccar-default:
        name: traccar-${CONTEXT}
        driver: bridge
        driver_opts:
            com.docker.network.enable_ipv6: "false"
        ipam:
            driver: default
            config:
                - subnet: ${SUBNET}