Несмотря на возможность сделать
docker commit
, то, что Вы получите в результате, будет чёрным ящиком, который непонятно каким образом создан. Хорошая практика в данном случае заключается в том, чтобы описать все изменения, которые Вы производите в контейнере, с помощью
Dockerfile
-а. Этот
Dockerfile
можно будет сохранить в системе контроля версий, провести его ревью, модифицировать, воспроизвести в сборочном конвеере.
Да, под капотом на каждую строчку в
Dockerfile
-е происходит вызов
docker commit
, но важно то, что в этом случает сохраняется источник этих изменений.
Не знаю, как точно настраивается FreePBX, но Вам может понадобиться, например, использовать
envsubst
для применения переменных окружения, с которыми запущен контейнер, к конфигурационным файлам. А может потребоваться сделать стартовый .sh-скрипт, который при запуске произведёт нужные
конфигурационные действия.
В случае использования переменных окружения также очень полезно в скрипте запуска проверить, заданы ли они, и если нет - упасть с осмысленным сообщением об ошибке:
echo MY_ENV_VAR "${MY_ENV_VAR?MY_ENV_VAR is required!}"