Thanks
@Tonyclewis
Interesting reading.
Update:
For those who are interested in exploring the subject,
this docker collection seems to be the most recent and complete.
I'll drop it on a host and try it out for the fun of it.
Update 2:
After reading and re-reading the thread above (and an additional couple of similar ones on other forums) I grew even more curious about any progress that the Italian fellow made since he posted the original thread a couple of years ago.
Interestingly, he kept updating his docker containers regularly with the last iteration made only last month.
His material is quite well documented. So, dropping it on a Xubuntu+Docker VPS over at RackNerd was a breeze. Quite literally it took me under 5 minutes to get it running.
After quickly setting up a couple of extensions to play with and a IAX2 bridge to one of my production PBXs to get outside lines I was able to make and receive calls.
When I looked a bit deeper into the available functionality, I noticed that many basic modules (like ring groups, intercom, etc.) were not installed. But, I was able to quickly install them through Module Admin and they are now fully operational. Module Admin was also able to update those bits and pieces which had updates available.
As I was a bit uneasy about its networking configuration (bare, direct to net) I quickly attached it to a basic NAT+firewall container of my own and the whole thing is currently humming on a dual core, 2GB bare bones KVM VPS.
Obviously, security is a major concern at this point. So, this won't go any further except for exploration and to satisfy my curiosity about how this guy has been able to make it thus far against all the odds.
Maybe there is something to learn from it.
Update 3:
My basic configuration has been working well so far. When I wanted to add a sip trunk, I noticed that chan_sip driver was not available. Therefore, I did it with pjsip and it worked fine. But, although obsolete, I still like having chan_sip around.
There are a couple of things that I particularly like about the docker approach - in the practical sense.
First, this thing is lightweight. So lightweight that I was worried some processes were actually stopped. Firing up my process monitoring tool evidenced and reassured me that everything is in working order.
Second, running additional instances of the PBX on separate containers while working off the same database is possible although it requires changing Docker's networking scheme.
The compatible networking scheme unfortunately broke my NAT+Firewall container, but I am hopeful that I can make them coexist and work together again. But that is not an issue if the Docker host is on a LAN behind a well configured Router/firewall.
So, I will probably take my test setup off a naked VPS and bring it to Proxmox in my lab.
One more thing; I was also able to run unrelated Docker containers (including my favorite email server container) alongside without a hitch (until I changed the networking scheme on Docker and messed up my networking container that is)
Update 4 & probably final:
After dicing and slicing the izpbx containers I think a discovered a series of weaknesses which probably explain the unstable nature of the implementation, although I have to say Ugo Viti, the guy who put this thing together has done a great job. My conclusion at this point is that it is possible to cherry pick the modules and get a dockerized FreePbx work reliably, but that would also fall short of the minimum functionality one would expect from it.
Some modules make the whole thing become very unstable and unpredictable.
Where I was most flabbergasted was the ease by which Docker's networking schemes can be broken down - pretty much all of them.