docker-compose.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. version: '3'
  2. services:
  3. pbx:
  4. container_name: pbx
  5. hostname: ${APP_FQDN}
  6. build: https://gogs.halsbox.ru/hal/docker-freepbx.git
  7. image: halsbox/docker-freepbx:latest
  8. restart: always
  9. depends_on:
  10. - db
  11. env_file:
  12. - .env
  13. - app.env
  14. volumes:
  15. - /etc/localtime:/etc/localtime:ro
  16. - ${PERSISTENT_STORAGE_PATH}/pbx:/data
  17. cap_add:
  18. - NET_ADMIN
  19. privileged: true
  20. network_mode: host
  21. db:
  22. container_name: db
  23. image: mariadb:10.5.8
  24. command: --sql-mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  25. restart: always
  26. env_file:
  27. - .env
  28. ports:
  29. - ${APP_PORT_MYSQL}:3306
  30. volumes:
  31. - /etc/localtime:/etc/localtime:ro
  32. - ${PERSISTENT_STORAGE_PATH}/db:/var/lib/mysql
  33. environment:
  34. - MYSQL_ROOT_PASSWORD
  35. - MYSQL_DATABASE
  36. - MYSQL_USER
  37. - MYSQL_PASSWORD
  38. app:
  39. container_name: app
  40. hostname: ${APP_FQDN}
  41. build: ./app
  42. restart: always
  43. depends_on:
  44. - pbx
  45. env_file:
  46. - app.env
  47. ports:
  48. - ${APP_API_PORT}:${APP_API_PORT}
  49. volumes:
  50. - /etc/localtime:/etc/localtime:ro
  51. - ./app:/app
  52. - ${PERSISTENT_STORAGE_PATH}/pbx/var/spool/asterisk/monitor:/app/static/records
  53. environment:
  54. - APP_FQDN
  55. - APP_API_PORT
  56. - APP_PORT_MYSQL
  57. - MYSQL_USER
  58. - MYSQL_PASSWORD
  59. - MYSQL_DATABASE
  60. - FREEPBX_CDRDBNAME
  61. - MYSQL_SERVER=db
  62. nfs:
  63. container_name: nfs
  64. hostname: nfs.${APP_FQDN}
  65. image: itsthenetwork/nfs-server-alpine:latest
  66. restart: always
  67. env_file:
  68. - app.env
  69. ports:
  70. - 2049:2049
  71. volumes:
  72. - /etc/localtime:/etc/localtime:ro
  73. - ${PERSISTENT_STORAGE_PATH}/pbx/var/spool/asterisk/monitor:/monitor
  74. cap_add:
  75. - NET_ADMIN
  76. privileged: true
  77. environment:
  78. - READ_ONLY=1
  79. - SHARED_DIRECTORY=/monitor
  80. - PERMITTED="192.168.171.53"