<div dir="ltr"><div>== Overview ==</div><div><br></div>Hey all,<div><br></div><div>I've been working on ways of producing Asterisk Docker container images since AstriDevCon when it was brought up as a pretty fundamental aspect of what a lot of integrators are doing.</div><div><br></div><div>In AstriDevCon room alone, I believe there were at least 5 separate organizations that had taken an approach to building Asterisk Docker container images, probably much of which was overlapping functionality.</div><div><br></div><div>I spent a good chunk of time going through and figuring out an initial solution to building Asterisk container images (can I just call them ACI now?). There are some things to get us there, but primarily it centres around building them from packages. But what packages? And what happens when I have a change I want to make to the source and get that into my own container?</div><div><br></div><div>I wrote up a lengthy blog post that likely borders on ranting: </div><div><br></div><div><a href="http://blog.leifmadsen.com/blog/2015/11/10/asterisk-docker-container-phase-1/">http://blog.leifmadsen.com/blog/2015/11/10/asterisk-docker-container-phase-1/</a></div><div><br></div><div>Primarily I wanted to get as many thoughts down as I had encountered recently to build the story around some of the "gotchas" that surround this space. Let me try and distil it for the list though.</div><div><br></div><div>== What's completed and outstanding ==</div><div><br></div><div>* there is an Asterisk 13.3.2 container image[1] that is the result of fedpkg per the Fedora project</div><div>* it is the result of two Dockerfile; the first builds the RPMs, and the second builds the ACI from those RPMs[2]</div><div>* it does *not* yet build from local source (a goal)</div><div>* it is not ready for inclusion in the Asterisk project due to some more research</div><div><br></div><div>== Goals ==</div><div><br></div><div>The primary goals of the container project (from my viewpoint) include:</div><div>* reproducibility</div><div>* low to zero infrastructure burden outside of being able to run docker commands</div><div>* ability to check out Asterisk source, make modification to the source, run a couple commands, and result in a custom container image with those local modifications</div><div>* small container image for distribution purposes for those without custom modifications</div><div><br></div><div>== What's next ==</div><div>Next up is to gather feedback, even if it is silence. I will take silence to mean "great job, keep going!", "I don't care what you're doing", or "I have no idea what you're talking about; keep going!".</div><div><br></div><div>Perhaps my approach is wrong. I would love to hear why that might be, and what should be done about that. Maybe I'm making things too complicated, or there is another project I should be aware of so that I'm not duplicating work?</div><div><br></div><div>Overall, the idea here is to provide the files required to result in Asterisk container images for people to consume, without having to put a burden on the Asterisk project to build out infrastructure to build and host RPMs simply to make the building of container images available (although a nice side effect of this might be that building RPMs and other packages may be significantly easier if there is still a desire to have "official" packages, but my gut tells me it's not really necessary).</div><div><br></div><div>I would love to hear what you're up to with Docker, and what issues you've had with building container images, and how this project might be able to help move a lot of this work into a more centralized location.</div><div><br></div><div>[1] <a href="https://hub.docker.com/r/leifmadsen/asterisk/">https://hub.docker.com/r/leifmadsen/asterisk/</a></div><div>[2] <a href="https://github.com/leifmadsen/asterisk-docker-builder">https://github.com/leifmadsen/asterisk-docker-builder</a></div><div><br></div>--<br>Leif Madsen<br>Director of Engineering, Product Development<br><div><a href="http://avoxi.com">http://avoxi.com</a></div></div>