services: mongo: image: mongo:6.0 container_name: mongo command: --bind_ip 0.0.0.0 env_file: - .custom_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: - .custom_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: - .custom_env environment: - COMPONENT_NAME=nrf-1 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 container_name: scp env_file: - .custom_env environment: - COMPONENT_NAME=scp-1 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: - .custom_env environment: - COMPONENT_NAME=ausf-1 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: - .custom_env environment: - COMPONENT_NAME=udr-1 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: - .custom_env environment: - COMPONENT_NAME=udm-1 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: - .custom_env environment: - COMPONENT_NAME=smf-1 - 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/udp" - "3868/tcp" - "3868/sctp" - "5868/udp" - "5868/tcp" - "5868/sctp" - "8805/udp" - "2123/udp" - "7777/tcp" - "9091/tcp" networks: default: ipv4_address: ${SMF_IP} eupf: image: docker_eupf depends_on: - nrf - scp - smf container_name: eupf env_file: - .custom_env environment: - COMPONENT_NAME=eupf-1 volumes: - ../../eupf:/mnt/eupf - /sys/fs/bpf:/sys/fs/bpf - /sys/kernel/debug:/sys/kernel/debug:ro - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro expose: - "2152/udp" - "8805/udp" - "9091/tcp" - "8181/tcp" # ports: # - "2152:2152/udp" ulimits: memlock: -1 cap_add: - NET_ADMIN - SYS_ADMIN privileged: true sysctls: - net.ipv4.conf.all.forwarding=1 #- net.ipv6.conf.all.disable_ipv6=0 networks: default: ipv4_address: ${UPF_IP} eupf-routes: image: nicolaka/netshoot network_mode: host privileged: true container_name: eupf-routes env_file: - .custom_env command: - /bin/sh - -c - | ip ro add ${UE_IPV4_INTERNET} via ${UPF_IP} && \ iptables -t nat -A POSTROUTING -s ${UE_IPV4_INTERNET} -j MASQUERADE && \ sysctl -w net.ipv4.conf.all.accept_local=1 echo "done" tail -f /dev/null amf: image: docker_open5gs depends_on: - nrf - scp - ausf - udm - udr - pcf - bsf container_name: amf env_file: - .custom_env environment: - COMPONENT_NAME=amf-1 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: - .custom_env environment: - COMPONENT_NAME=pcf-1 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: - .custom_env environment: - COMPONENT_NAME=bsf-1 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: - .custom_env environment: - COMPONENT_NAME=nssf-1 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: - .custom_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: - .custom_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: - .custom_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: - .custom_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: - .custom_env depends_on: - dns - mysql expose: - "3868/udp" - "3868/tcp" - "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: - .custom_env environment: - COMPONENT_NAME=icscf-1 depends_on: - dns - mysql - pyhss expose: - "3869/udp" - "3869/tcp" - "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: - .custom_env environment: - COMPONENT_NAME=scscf-1 depends_on: - dns - mysql - pyhss expose: - "3870/udp" - "3870/tcp" - "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: - .custom_env environment: - COMPONENT_NAME=pcscf-1 - DEPLOY_MODE=5G depends_on: - dns - mysql - rtpengine - icscf - scscf expose: - "3871/udp" - "3871/tcp" - "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: - .custom_env environment: - COMPONENT_NAME=smsc-1 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: - .custom_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