Morgan Phillips: Introducing RelEng Containers: Build Firefox Consistently (For A Better Tomorrow)
|
|
Среда, 18 Февраля 2015 г. 23:15
+ в цитатник
From time to time, Firefox developers encounter errors which only appear on our build machines. Meaning -- after they've likely already failed numerous times to coax the failure form their own environment -- they must resort to requesting RelEng to pluck a system from our infrastructure so they can use it for debugging: we call this a
slave loan, and they happen frequently.
Case in point: bug #689291Firefox is a huge open source project: slave loans can never scale enough to serve our community. So, this weekend I took a whack at solving this problem with
Docker. So far, five [of an eventual fourteen] containers have been published, which replicate the following aspects of our in house build environments:
- OS (Centos 6)
- libraries (yum is pointed at our in house repo)
- compilers/interpreters/utilities (installed to /tools)
- ENV variables
As usual, you can find my scratch work on GitHub:
mozilla/build-environments
What Are These Environments Based On?For a long time, builds have taken place inside of chroots built with
Mock. We have
three bare bones mock configs which I used to bake some base platform images:
On top of our Mock configs, we further specialize build chroots via build scripts powered by
Mozharness. The specifications of each environment are laid out in these
mozharness configs. To make use of these,
I wrote a simple script which converts a mozharness config into a Dockerfile.
The environments I've published so far:
The next step, before I publish more containers, will be to write some documentation for developers so they can begin using them for builds with minimal hassle. Stay tuned!
http://linux-poetry.com/blog/section/mozilla/17/
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-