I am currently looking into making OSGi projects deployable as docker
images.
For the plain deployment I already found some good solutions:
- bndtools allows to package an application as a self contained jar.
This can then be put into a docker image
- A karaf custom distro can also be packaged as a docker image nicely.
The static profile allows to even omit the feature service
In both solutions though configuration is not nicely supported in a
style suitable for docker.
It is of course easy to supply config for karaf by putting configs into
the etc dir when doing the custom distro. The problem is only how to
allow overrides from the docker side.
Bndtools or more precisely enroute allows to define default configs as
magic property files in a bundle and can use an extender to apply these.
The typical approach in docker and docker compose seems to be to use env
variables and system properties.
I wonder if we could support that better by allowing to override any
config admin config.
For an env var or system property something like this might do:
cm:<pid>:<key>=value
So the files could contain the defaults and env and system properties
could override them. Does that make sense? Do we already have other
options that I am missing?
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com