Запуск Asterisk и его базы данных mysql в разных контейнерах Docker

Если я правильно понял использование и назначение docker, каждый процесс должен находиться внутри своего собственного контейнера, таким образом не мешая другим запущенным процессам.

Исходя из этого, я хотел бы запустить сервер АТС Asterisk в одном контейнере, базу данных mysql в другом контейнере и в третьем контейнере. Я хотел бы запустить графический интерфейс FreePBX для Asterisk.

Запуск каждой из этих служб в своем собственном контейнере не является проблемой, но как бы я потом соединил эти три вместе, так как мне нужно, чтобы mysql db регистрировал вызовы с использованием переменных CDR, а FreePBX должен быть установлен, чтобы обеспечить работу GUI для конфигурации Asterisk,

Любой совет приветствуется, спасибо.

1 ответ

Вы должны обязательно попробовать docker-compose. Этот инструмент поможет вам легко выставить один контейнер другому.

Ваш пример с docker-compose.yml может выглядеть так:

db:
   image: mysql:5
   environment:
     - MYSQL_PASSWORD=pass
     - MYSQL_USER=asterisk
     - MYSQL_DATABASE=freepbx

asterisk:
  image: asterisk
  links:
    - db

freepbx:
   image: php5-apache
   links:
     - db
   volumes-from:
     - asterisk

Это создаст 3 контейнера, первый для БД, второй для самой звездочки, третий для freepbx. Звездочка и образ freepbx смогут подключаться к базе данных хоста. Также у freepbx будет доступ к томам, которые публикуются внутри звездочки, например, логи для разбора или файлы конфигурации.

Другие вопросы по тегам