services: mongo: image: mongo:6.0 container_name: mongo command: --bind_ip 0.0.0.0 env_file: - .env volumes: - mongodbdata:/data/db - mongodbdata:/data/configdb - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "27017/udp" - "27017/tcp" networks: default: ipv4_address: ${MONGO_IP} webui: image: docker_open5gs container_name: webui depends_on: - mongo env_file: - .env environment: - COMPONENT_NAME=webui volumes: - ./webui:/mnt/webui - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "9999/tcp" ports: - "9999:9999/tcp" networks: default: ipv4_address: ${WEBUI_IP} nrf: image: docker_open5gs container_name: nrf env_file: - .env environment: - COMPONENT_NAME=nrf volumes: - ./nrf:/mnt/nrf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${NRF_IP} scp: image: docker_open5gs depends_on: - nrf container_name: scp env_file: - .env environment: - COMPONENT_NAME=scp volumes: - ./scp:/mnt/scp - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${SCP_IP} ausf: image: docker_open5gs depends_on: - nrf - scp container_name: ausf env_file: - .env environment: - COMPONENT_NAME=ausf volumes: - ./ausf:/mnt/ausf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${AUSF_IP} udr: image: docker_open5gs depends_on: - nrf - scp - mongo container_name: udr env_file: - .env environment: - COMPONENT_NAME=udr volumes: - ./udr:/mnt/udr - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${UDR_IP} udm: image: docker_open5gs depends_on: - nrf - scp container_name: udm env_file: - .env environment: - COMPONENT_NAME=udm volumes: - ./udm:/mnt/udm - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${UDM_IP} smf: image: docker_open5gs depends_on: - nrf - scp - amf container_name: smf env_file: - .env environment: - COMPONENT_NAME=smf - DEPLOY_MODE=5G volumes: - ./smf:/mnt/smf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "3868/tcp" - "3868/sctp" - "5868/tcp" - "5868/sctp" - "8805/udp" - "2123/udp" - "7777/tcp" - "9091/tcp" networks: default: ipv4_address: ${SMF_IP} upf: image: docker_open5gs depends_on: - nrf - scp - smf container_name: upf env_file: - .env environment: - COMPONENT_NAME=upf volumes: - ./upf:/mnt/upf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "2152/udp" - "8805/udp" - "9091/tcp" # ports: # - "2152:2152/udp" cap_add: - NET_ADMIN privileged: true sysctls: - net.ipv4.ip_forward=1 #- net.ipv6.conf.all.disable_ipv6=0 networks: default: ipv4_address: ${UPF_IP} amf: image: docker_open5gs depends_on: - nrf - scp - ausf - udm - udr - pcf - bsf container_name: amf env_file: - .env environment: - COMPONENT_NAME=amf volumes: - ./amf:/mnt/amf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "38412/sctp" - "7777/tcp" - "9091/tcp" # ports: # - "38412:38412/sctp" networks: default: ipv4_address: ${AMF_IP} pcf: image: docker_open5gs depends_on: - nrf - scp - mongo container_name: pcf env_file: - .env environment: - COMPONENT_NAME=pcf volumes: - ./pcf:/mnt/pcf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" - "9091/tcp" networks: default: ipv4_address: ${PCF_IP} bsf: image: docker_open5gs depends_on: - nrf - scp - mongo container_name: bsf env_file: - .env environment: - COMPONENT_NAME=bsf volumes: - ./bsf:/mnt/bsf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${BSF_IP} nssf: image: docker_open5gs depends_on: - nrf - scp - mongo container_name: nssf env_file: - .env environment: - COMPONENT_NAME=nssf volumes: - ./nssf:/mnt/nssf - ./log:/open5gs/install/var/log/open5gs - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "7777/tcp" networks: default: ipv4_address: ${NSSF_IP} metrics: build: ./metrics image: docker_metrics container_name: metrics env_file: - .env volumes: - ./metrics:/mnt/metrics - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "9090/tcp" ports: - "9090:9090/tcp" networks: default: ipv4_address: ${METRICS_IP} dns: build: ./dns image: docker_dns container_name: dns env_file: - .env volumes: - ./dns:/mnt/dns - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "53/udp" networks: default: ipv4_address: ${DNS_IP} rtpengine: build: ./rtpengine image: docker_rtpengine container_name: rtpengine privileged: true env_file: - .env volumes: - ./rtpengine:/mnt/rtpengine - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro cap_add: - NET_ADMIN environment: - TABLE=0 - INTERFACE=${RTPENGINE_IP} - LISTEN_NG=${RTPENGINE_IP}:2223 - PIDFILE=/run/ngcp-rtpengine-daemon.pid - PORT_MAX=50000 - PORT_MIN=49000 - NO_FALLBACK=no - TOS=184 expose: - "2223/udp" - "49000-50000/udp" networks: default: ipv4_address: ${RTPENGINE_IP} mysql: build: ./mysql image: docker_mysql container_name: mysql env_file: - .env volumes: - dbdata:/var/lib/mysql - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "3306/tcp" networks: default: ipv4_address: ${MYSQL_IP} pyhss: build: ./pyhss image: docker_pyhss container_name: pyhss dns: ${DNS_IP} volumes: - ./pyhss:/mnt/pyhss - ./pyhss/logs:/pyhss/log/ - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro env_file: - .env depends_on: - dns - mysql expose: - "${PYHSS_BIND_PORT}/tcp" - "${PYHSS_BIND_PORT}/sctp" - "8080/tcp" ports: - "8080:8080/tcp" networks: default: ipv4_address: ${PYHSS_IP} icscf: image: docker_kamailio container_name: icscf dns: ${DNS_IP} volumes: - ./icscf:/mnt/icscf - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro env_file: - .env environment: - COMPONENT_NAME=icscf depends_on: - dns - mysql - pyhss expose: - "${ICSCF_BIND_PORT}/tcp" - "${ICSCF_BIND_PORT}/sctp" - "4060/udp" - "4060/tcp" networks: default: ipv4_address: ${ICSCF_IP} scscf: image: docker_kamailio container_name: scscf dns: ${DNS_IP} volumes: - ./scscf:/mnt/scscf - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro env_file: - .env environment: - COMPONENT_NAME=scscf depends_on: - dns - mysql - pyhss expose: - "${SCSCF_BIND_PORT}/tcp" - "${SCSCF_BIND_PORT}/sctp" - "6060/udp" - "6060/tcp" networks: default: ipv4_address: ${SCSCF_IP} pcscf: image: docker_kamailio container_name: pcscf dns: ${DNS_IP} privileged: true cap_add: - NET_ADMIN volumes: - ./pcscf:/mnt/pcscf - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro env_file: - .env environment: - COMPONENT_NAME=pcscf - DEPLOY_MODE=5G depends_on: - dns - mysql - rtpengine - icscf - scscf expose: - "${PCSCF_BIND_PORT}/tcp" - "${PCSCF_BIND_PORT}/sctp" - "5060/tcp" - "5060/udp" - "5100-5120/tcp" - "5100-5120/udp" - "6100-6120/tcp" - "6100-6120/udp" networks: default: ipv4_address: ${PCSCF_IP} smsc: image: docker_kamailio container_name: smsc dns: ${DNS_IP} volumes: - ./smsc:/mnt/smsc - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro env_file: - .env environment: - COMPONENT_NAME=smsc depends_on: - dns - mysql expose: - "7090/udp" - "7090/tcp" networks: default: ipv4_address: ${SMSC_IP} grafana: image: grafana/grafana:11.3.0 container_name: grafana env_file: - .env volumes: - grafana_data:/var/lib/grafana - ./grafana/:/etc/grafana/provisioning/ - ./grafana:/mnt/grafana - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} #- GF_INSTALL_PLUGINS=${GRAFANA_INSTALL_PLUGINS} - GF_PATHS_PROVISIONING=/etc/grafana/provisioning - GF_PATHS_DATA=/var/lib/grafana - METRICS_IP=${METRICS_IP} expose: - "3000/tcp" ports: - "3000:3000/tcp" networks: default: ipv4_address: ${GRAFANA_IP} networks: default: name: docker_open5gs_default ipam: config: - subnet: ${TEST_NETWORK} volumes: grafana_data: name: grafana_data mongodbdata: name: docker_open5gs_mongodbdata dbdata: name: docker_open5gs_dbdata