Thanks for sharing !

I think we can improve the docker script provided by Karaf to do the same 
(starting from Karaf official instance).

Regards
JB

> Le 21 avr. 2020 à 18:36, Steinar Bang <s...@dod.no> a écrit :
> 
> I have created my first real karaf-based docker image:
> https://github.com/steinarb/sonar-collector#run-the-sonar-metrics-collector-in-docker
> 
> The sonar-collector is intended as a webhook called by sonar on
> completing a build, it will store key sonar measurements as a row in a
> database table.  
> 
> Sonar has these numbers internally but doesn't have a way to get at
> them. At first we typed these numbers manually into a spreadsheet to get
> statistics on a set of analyzed programs.  But that was tedious, so we
> created sonar-collector to capture the numbers instead.
> 
> The docker image is built with maven against a local docker and then
> after testing, the image was pushed to docker hub:
> https://github.com/steinarb/sonar-collector#building-the-docker-image
> 
> The docker image is a very thin layer on top of the official karaf 4.2.8
> docker image
> https://github.com/steinarb/sonar-collector/blob/master/docker/docker/Dockerfile#L1
> 
> It copies in two files into the image's karaf etc directory:
> 1. org.apache.karaf.features.cfg
>    a. Adds a feature repository for sonar-collector
>        
> https://github.com/steinarb/sonar-collector/blob/master/docker/docker/org.apache.karaf.features.cfg#L28
>    b. Adds two features to the boot features
>       i. An enviroment variable overloadable DataSourceFactory feature
>          that defaults to postgresql
>            
> https://github.com/steinarb/sonar-collector/blob/master/docker/docker/org.apache.karaf.features.cfg#L52
>       ii. The sonar-collector-webhook-with-postgresql feature
>            
> https://github.com/steinarb/sonar-collector/blob/master/docker/docker/org.apache.karaf.features.cfg#L53
> 
> 2. org.ops4j.datasource-sonar-collector.cfg which is a modified version
>    of the file generated by pax-jdbc on first start, and the JDBC
>    driver name and JDBC connection info overridable by system
>    environment variables
>     
> https://github.com/steinarb/sonar-collector/blob/master/docker/docker/org.ops4j.datasource-sonar-collector.cfg#L2
> 
> This image will provision itself from maven central (sonar-collector is
> released to maven-central) and will always use the latest released
> version, so there is no need to build a new docker image if a new
> version of sonar-collector is released to maven central.
> 
> Since the database schema is set up by liquibase and the SQL used is
> trivial (inserts rows into a single table), it should in theory be
> possible to use a different database than PostgreSQL, and I have
> provided the possibility to override the database used when doing
> "docker run" of the image.
> 
> But using other databases than PostgreSQL is something I haven't
> extensively tested.
> 

Reply via email to