<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 19, 2015 at 10:14 AM, Matthew Jordan <span dir="ltr"><<a href="mailto:mjordan@digium.com" target="_blank">mjordan@digium.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div><snip><br></div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_extra"><div><div><div class="gmail_quote">On Mon, Nov 16, 2015 at 4:31 PM, Steve Edwards <span dir="ltr"><<a href="mailto:asterisk.org@sedwards.com" target="_blank">asterisk.org@sedwards.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On Mon, Nov 16, 2015 at 4:31 PM, Steve Edwards <<a href="mailto:asterisk.org@sedwards.com" target="_blank">asterisk.org@sedwards.com</a>> wrote:<br>
><br>
> On Mon, 16 Nov 2015, Leif Madsen wrote:<br>
><br>
>> I wrote up a lengthy blog post that likely borders on ranting:<br>
>><br>
>> <a href="http://blog.leifmadsen.com/blog/2015/11/10/asterisk-docker-container-phase-1/" rel="noreferrer" target="_blank">http://blog.leifmadsen.com/blog/2015/11/10/asterisk-docker-container-phase-1/</a><br>
><br>
><br></blockquote></span></blockquote></div></div></div></div></blockquote><div><br></div></span><div>Great blog post :-)<br><br></div><div>Would it be appropriate to summarize the current state of things as "we need a spec file for Asterisk"?<br></div><span class=""><div><br></div></span></div></div></div></blockquote><div><br></div><div>Yes, that would be fair. Good thing Alan Graham pointed me at a project that will build one for us pretty simply from the source directory. I need to work on another blog post, but basically I have sorted out the main sticking points, and it doesn't require the Fedora .spec file at all. I'm trying to work with tools that will generate the package, simply for the purposes of getting it into the Docker container image (it's probably not appropriate for further distribution as a "de facto" image, but that's another problem to solve at another time).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><div><br></div></span></div></div><div class="gmail_extra">Just to address Steve's point:<br><br></div><div class="gmail_extra">Packages aren't going anywhere. I do think we can all agree that the state of Asterisk packaging could use some improvement, but that's a separate discussion.<br><br></div><div class="gmail_extra">Docker is another way to deploy Asterisk, that may or may not use packages. (And as Chad pointed out, we're using Docker here at Digium for that purpose.) As Leif mentioned in his blog post, there's definitely benefits to using packages with Docker, as it reduces the size of the Docker images. If the goal is to have a universally accepted Docker file for the Asterisk project, then it probably make sense to use packages; that would necessitate either having dependable packages for a variety of distros, or include a .spec file with the project.<br><br></div><div class="gmail_extra">Leif: Does that sound correct?<br></div><div class="gmail_extra"><br></div></div></blockquote><div><br></div><div>Yes that does sound correct, and you're right that *my* goal is to provide a Dockerfile that can be shipped with the Asterisk source. In my adventures earlier this week, I found a project that uses Docker to package up the Asterisk source that you're running from (which means you can generate a package for the source you've modified, if that's your thing), and then use the resulting package as the basis of your Asterisk container image you're going to build.</div><div><br></div><div>This is VERY useful when you start wanting to avoid having to modify spec files for every change you make, or every version of Asterisk, meaning that a good chunk, if not the entire process, could be automated. This is good news, because then the Asterisk project could actually use these files to generate "official" Docker container images. We're not that far yet, but I don't think we're far off.</div><div><br></div><div>Hopefully tomorrow I can spend an hour or so working on a phase 2 blog post, and then start learning how to submit some files back to the project :)</div><div><br></div><div>Here is a preview of the workflow (copy / pasta of the README.md I created):</div><div><br></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div># Building Asterisk into a Docker Container Image</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div><br></div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>Build the package container image. This uses FPM so no `spec` files and such are</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>necessary.</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>docker build --pull -f contrib/docker/Dockerfile.packager -t asterisk-build .</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div><br></div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>Build the Asterisk RPM from the resulting container image.</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>docker run -ti -v $(pwd):/application:ro -v $(pwd)/out:/build -w /application asterisk-build /application/contrib/docker/make-package.sh 13.6.0</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div><br></div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>Now create your own Asterisk container image from the resulting RPM.</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>docker build --rm -t madsen/asterisk:13.6.0-1 -f contrib/docker/Dockerfile.asterisk .</div></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><div>```</div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><br></div></div>--<br>Leif Madsen<br>Director of Engineering, Product Development<br><a href="http://avoxi.com">http://avoxi.com</a><br>
</div></div>