services:
    oai-flexric:
        image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
        container_name: oai-flexric
        networks:
            public_net:
                ipv4_address: 192.168.70.150
        volumes:
            - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
        healthcheck:
            test: /bin/bash -c "pgrep nearRT-RIC"
            interval: 10s
            timeout: 5s

    xapp-rc-moni:
        image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
        command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_rc_moni"
        container_name: xapp-rc-moni
        depends_on:
            - oai-flexric
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.154
        volumes:
            - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
        healthcheck:
            test: /bin/bash -c "pgrep xapp_rc_moni"
            interval: 10s
            timeout: 5s

    xapp-kpm-moni:
        image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
        command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_kpm_moni"
        container_name: xapp-kpm-moni
        depends_on:
            - oai-flexric
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.155
        volumes:
            - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
        healthcheck:
            test: /bin/bash -c "pgrep xapp_kpm_moni"
            interval: 10s
            timeout: 5s

    xapp-kpm-rc:
        image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
        command: "stdbuf -o0 /usr/local/flexric/xApp/c/kpm_rc/xapp_kpm_rc"
        container_name: xapp-kpm-rc
        depends_on:
            - oai-flexric
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.156
        volumes:
            - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
        healthcheck:
            test: /bin/bash -c "pgrep xapp_kpm_rc"
            interval: 10s
            timeout: 5s

    xapp-gtp-mac-rlc-pdcp-moni:
        image: ${REGISTRY-oaisoftwarealliance/}oai-flexric:${FLEXRIC_TAG:-develop}
        command: "stdbuf -o0 /usr/local/flexric/xApp/c/monitor/xapp_gtp_mac_rlc_pdcp_moni"
        container_name: xapp-gtp-mac-rlc-pdcp-moni
        depends_on:
            - oai-flexric
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.157
        volumes:
            - ./conf/flexric.conf:/usr/local/etc/flexric/flexric.conf
        healthcheck:
            test: /bin/bash -c "pgrep -f xapp_gtp_mac_rlc_pdcp_moni"
            interval: 10s
            timeout: 5s

    oai-gnb:
        image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
        privileged: true
        container_name: rfsim5g-oai-gnb
        environment:
            USE_ADDITIONAL_OPTIONS: -E --rfsim --log_config.global_log_options level,nocolor,time
            ASAN_OPTIONS: detect_leaks=0
        depends_on:
            - oai-flexric
        networks:
            public_net:
                ipv4_address: 192.168.70.151
        volumes:
            - ../../conf_files/gnb.sa.band78.106prb.rfsim.flexric.conf:/opt/oai-gnb/etc/gnb.conf
        healthcheck:
            test: /bin/bash -c "pgrep nr-softmodem"
            interval: 10s
            timeout: 5s
            retries: 5

    oai-nr-ue:
        image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
        privileged: true
        container_name: rfsim5g-oai-nr-ue
        environment:
            USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000003 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
        depends_on:
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.152
        volumes:
            - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
        healthcheck:
            test: /bin/bash -c "pgrep nr-uesoftmodem"
            interval: 10s
            timeout: 5s
            retries: 5

    oai-nr-ue2:
        image: ${REGISTRY-oaisoftwarealliance/}${NRUE_IMG:-oai-nr-ue}:${TAG:-develop}
        privileged: true
        container_name: rfsim5g-oai-nr-ue2
        environment:
            USE_ADDITIONAL_OPTIONS: -E --rfsim -r 106 --numerology 1 -C 3619200000 --uicc0.imsi 001010000000004 --rfsimulator.serveraddr 192.168.70.151 --log_config.global_log_options level,nocolor,time
        depends_on:
            - oai-gnb
        networks:
            public_net:
                ipv4_address: 192.168.70.153
        volumes:
            - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
        healthcheck:
            test: /bin/bash -c "pgrep nr-uesoftmodem"
            interval: 10s
            timeout: 5s
            retries: 5

networks:
    public_net:
        name: oai-cn5g-public-net
        external: true
