[Container-tools] Creating build tool for atomic apps

Bohuslav Kabrda slavek at redhat.com
Wed Jun 10 12:43:33 UTC 2015


So here's my progress on atomicapp-builder:

- Repo: https://github.com/bkabrda/atomicapp-builder/
- Current status:

Let's assume invocation like this:

atomicapp-builder build --cccp-index https://raw.githubusercontent.com/kbsingh/cccp-index/master/index.yml --build-image docker.io/slavek/buildroot cccp:appid

atomicapp-builder does this:
- look up application with id "appid" in the given index (the example one is actually default, I specified it only to show that it's possible to also choose a different one)
- clone it's git repo
- look into it's Nulecule file to see what other apps it depends on (it does so recursively to get all the dependencies)
- builds all the images (*) using dock
- return built image names

TODO:
- accept a URI to a docker registry with some images possibly prefilled, push the built images there
- some nice-to-haves, like better logging, meaningful error messages, etc...

Also, I'm not sure whether "--cccp-index" is the right name for the argument above. I guess it'd make more sense to call it "--index" (something more general), since KB's cccp index is a name of an *instance of an index*. But I'm not sure about this, maybe KB can comment here.

Please share your thoughts/comments. If you want to play around with atomicapp-builder, the test/files directory contains a simple testing index of four apps that I created, so you can use that one.


(*) Note: Nulecule has a (undocumented) notion of two image types: "meta images" and "binary images". The "binary images" are images that contain the actual services, while "meta images" contain the "orchestration layer (kubernetes config files etc). As of now, Nulecule specification only allows resolving "meta images", so this is what atomicapp-builder builds. If/when Nulecule spec also implements a deterministic way to find out how to build the "binary images", I can also implement building these.




More information about the Container-tools mailing list