docker-compose.yml 7.35 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
version: '3.8'

services:
    cassandra:
        image: cassandra:2.1
        container_name: rfsim4g-cassandra
        networks:
            private_net:
                ipv4_address: 192.168.68.2
        environment:
            CASSANDRA_CLUSTER_NAME: "OAI HSS Cluster"
            CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
        healthcheck:
            test: /bin/bash -c "nodetool status"
            interval: 10s
            timeout: 5s
            retries: 5

    db_init:
        image: cassandra:2.1
        container_name: rfsim4g-db-init
        depends_on: [cassandra]
        deploy:
            restart_policy:
                condition: on-failure
                max_attempts: 10
        networks:
            private_net:
                ipv4_address: 192.168.68.4
        volumes:
            - ./oai_db.cql:/home/oai_db.cql
        entrypoint: /bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'"

    oai_hss:
35
        image: oai-hss:latest
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
        container_name: rfsim4g-oai-hss
        privileged: true
        depends_on: [cassandra]
        networks:
            private_net:
                ipv4_address: 192.168.68.3
            public_net:
                ipv4_address: 192.168.61.2
        environment:
            REALM: openairinterface.org
            HSS_FQDN: hss.openairinterface.org
            PREFIX: /openair-hss/etc
            cassandra_Server_IP: 192.168.68.2
            OP_KEY: 1006020f0a478bf6b699f15c062e42b3
            LTE_K: fec86ba6eb707ed08905757b1bb44b8f
            APN1: oai.ipv4
            APN2: internet
            FIRST_IMSI: 208960100000001
            NB_USERS: 10
        healthcheck:
            test: /bin/bash -c "pgrep oai_hss"
            interval: 10s
            timeout: 5s
            retries: 5

61 62 63
    redis:
        image: redis:6.0.5
        container_name: rfsim4g-redis
64
        privileged: true
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
        networks:
            public_net:
                ipv4_address: 192.168.61.6
        volumes:
            - ./redis_extern.conf:/usr/local/etc/redis/redis.conf
        entrypoint: /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf"
        healthcheck:
            test: /bin/bash -c "redis-cli -h 192.168.61.6 -p 6380 ping"
            interval: 10s
            timeout: 5s
            retries: 5

    magma_mme:
        image: magma-mme:latest
        container_name: rfsim4g-magma-mme
        hostname: mme
        privileged: true
        depends_on: [oai_hss, redis]
83 84 85 86
        networks:
            public_net:
                ipv4_address: 192.168.61.3
        environment:
87
            TZ: Europe/Paris
88 89 90 91 92 93
            REALM: openairinterface.org
            PREFIX: /openair-mme/etc
            HSS_HOSTNAME: hss
            HSS_FQDN: hss.openairinterface.org
            HSS_REALM: openairinterface.org
            MME_FQDN: mme.openairinterface.org
94 95 96 97 98 99
            FEATURES: mme_oai
        volumes:
            - ./mme_fd.sprint.conf:/magma-mme/etc/mme_fd.conf.tmplt
            - ./mme.conf:/magma-mme/etc/mme.conf
            - ./entrypoint.sh:/magma-mme/bin/entrypoint.sh
        entrypoint: /bin/bash -c "/magma-mme/bin/entrypoint.sh"
100 101 102 103 104 105 106
        healthcheck:
            test: /bin/bash -c "pgrep oai_mme"
            interval: 10s
            timeout: 5s
            retries: 5

    oai_spgwc:
107
        image: oai-spgwc:latest
108
        privileged: true
109
        depends_on: [magma_mme]
110 111 112 113 114 115 116 117
        container_name: rfsim4g-oai-spgwc
        networks:
            public_net:
                ipv4_address: 192.168.61.4
        environment:
            TZ: Europe/Paris
            SGW_INTERFACE_NAME_FOR_S11: eth0
            PGW_INTERFACE_NAME_FOR_SX: eth0
118
            DEFAULT_DNS_IPV4_ADDRESS: 172.21.3.100
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
            DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
            PUSH_PROTOCOL_OPTION: 'true'
            APN_NI_1: oai.ipv4
            APN_NI_2: oai.ipv4_2
            DEFAULT_APN_NI_1: oai.ipv4
            UE_IP_ADDRESS_POOL_1: '12.0.0.2 - 12.0.0.254'
            UE_IP_ADDRESS_POOL_2: '12.1.1.2 - 12.1.1.254'
            MCC: '208'
            MNC: '96'
            MNC03: '096'
            TAC: 1
            GW_ID: 1
            REALM: openairinterface.org
        healthcheck:
            test: /bin/bash -c "pgrep oai_spgwc"
            interval: 10s
            timeout: 5s
            retries: 5

    oai_spgwu:
139
        image: oai-spgwu-tiny:latest
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
        privileged: true
        container_name: rfsim4g-oai-spgwu-tiny
        depends_on: [oai_spgwc]
        networks:
            public_net:
                ipv4_address: 192.168.61.5
        environment:
            TZ: Europe/Paris
            PID_DIRECTORY: /var/run
            INSTANCE: 1
            SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: eth0
            PGW_INTERFACE_NAME_FOR_SGI: eth0
            SGW_INTERFACE_NAME_FOR_SX: eth0
            SPGWC0_IP_ADDRESS: 192.168.61.4
            NETWORK_UE_IP: '12.0.0.0/24'
            NETWORK_UE_NAT_OPTION: 'yes'
            MCC: '208'
            MNC: '96'
            MNC03: '096'
            TAC: 1
            GW_ID: 1
            REALM: openairinterface.org
        healthcheck:
            test: /bin/bash -c "pgrep oai_spgwu"
            interval: 10s
            timeout: 5s
            retries: 5

    trf_gen:
169
        image: oaisoftwarealliance/trf-gen-cn5g:focal
170 171 172 173 174 175 176 177 178 179 180 181
        privileged: true
        container_name: rfsim4g-trf-gen
        networks:
            public_net:
                ipv4_address: 192.168.61.11
        entrypoint: /bin/bash -c "ip route add 12.0.0.0/24 via 192.168.61.5 dev eth0; sleep infinity"
        healthcheck:
            test: /bin/bash -c "ping -c 2 192.168.61.5"
            interval: 10s
            timeout: 5s
            retries: 5

182
    oai_enb0:
183
        image: oaisoftwarealliance/oai-enb:develop
184 185 186 187 188 189 190 191
        privileged: true
        container_name: rfsim4g-oai-enb
        networks:
            public_net:
                ipv4_address: 192.168.61.20
        environment:
            TZ: Europe/Paris
            RFSIMULATOR: enb
192
            USE_ADDITIONAL_OPTIONS: --rfsim --log_config.global_log_options level,nocolor,time
193
        volumes:
194
            - ../../conf_files/enb.band7.25prb.rfsim.conf:/opt/oai-enb/etc/enb.conf
195 196 197 198 199
        healthcheck:
            test: /bin/bash -c "pgrep lte-softmodem"
            interval: 10s
            timeout: 5s
            retries: 5
200 201

    oai_ue0:
202
        image: oaisoftwarealliance/oai-lte-ue:develop
203 204 205 206 207 208 209 210 211 212
        privileged: true
        container_name: rfsim4g-oai-lte-ue0
        networks:
            public_net:
                ipv4_address: 192.168.61.30
        expose:
            - "10000"
        environment:
            TZ: Europe/Paris
            RFSIMULATOR: 192.168.61.20
213
            USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time
214 215
        volumes:
            - ../../conf_files/lteue.usim-ci.conf:/opt/oai-lte-ue/etc/ue_usim.conf
216 217 218 219 220
        healthcheck:
            test: /bin/bash -c "pgrep lte-uesoftmodem"
            interval: 10s
            timeout: 5s
            retries: 5
221 222 223 224 225 226 227

networks:
    private_net:
        name: rfsim4g-oai-private-net
        ipam:
            config:
                - subnet: 192.168.68.0/26
228 229
        driver_opts:
            com.docker.network.bridge.name: "rfsim4g-private"
230 231 232 233 234
    public_net:
        name: rfsim4g-oai-public-net
        ipam:
            config:
                - subnet: 192.168.61.0/26
235 236
        driver_opts:
            com.docker.network.bridge.name: "rfsim4g-public"