docker-compose.yml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. image: jfloff/alpine-python:latest-slim
  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. command:
  53. - -p aiohttp
  54. - -p aiomysql
  55. - -p quart
  56. - -p quart-openapi
  57. - -p hypercorn
  58. - -p git+https://github.com/gawel/panoramisk.git@master
  59. - --
  60. - python
  61. - /app/app.py
  62. environment:
  63. - APP_FQDN
  64. - APP_API_PORT
  65. - APP_PORT_MYSQL
  66. - MYSQL_USER
  67. - MYSQL_PASSWORD
  68. - MYSQL_DATABASE
  69. - FREEPBX_CDRDBNAME
  70. - MYSQL_SERVER=db