From the beginning of current year I am learning Docker. First result of this interest on my Github was publishing ccfactory tool, which was supposed to provide easy way to produce compiler toolchains. Almost like they were mass-produced in a factory, thus the name. However, since then I learned a lot and gained some experience. At the moment it is obvious to me, what I did then is not the best design. And because the project is still very fresh, I decided to start once again, from scratch, to create way better design that will be easy to develop and maintain.
Today is time to publish first step to this new design – binutils. I would not do that, but Docker Hub allows to have only one private repo, so the way that I do it disallows me to have it private anyway. So better idea is to describe it somehow to avoid confusion. As I wrote, this first step is binutils and this is simple container that contains binutils and nothing else. My goal is to finally make toolchain base on gcc version 3.3, which might sound weird, but this is what I needed in the past and is best way to prove what this new approach can achieve. With previous one, that I will call legacy from now on, I failed in that and before failing I did even more complicated Dockerfile, than originally planned. So, when finished this one will be proof of good design, I hope.
Getting back to binutils, if you want to use it for any reason right now, you can simply start your Dockerfile with something like:
FROM ccfactory/binutils:2.15-mips-linux-elf
And that’s it. Inside, you already have access to tools like mips-linux-elf-ld and the rest. Simple? Isn’t it? Complete list of tags is on Docker Hub and sources, as always, on Github, now even with continuous deployment, which is for me really good leap forward in terms of managing projects. As you can see, I also created organization for ccfactory, which is another thing to experiment with, as this is my first experience with that. Will see how it goes. For now it creates nice separation between this project and anything other, which is nice, as I will have whole bunch of repos in here.
Feel free to experiment with ccfactory yourself!