This directory contains docker files for building both hawkBit docker flavours:
- standard - hawkBit images without mysql driver
- mysql - with MariaDB Java connector with support for MySQL.
Both flavours of are almost the same, just mysql has in addition a MariaDB Java connector and is started, by default, with mysql Spring profile.
For every flavour there are two build types:
- release - uses officially released hawkBit versions, downloading them from https://repo1.maven.org
- development/dev - uses the local maven repository with built by developer (or just downloaded from any maven repository) hawkBit applications
Building images supports the following build arguments (i.e. ARG-s which could be passed using --build-arg):
- JAVA_VERSION - [OPTIONAL, if not set a default is used] the Java version of the eclipse-temurin jre-alpine base image to be used.
- HAWKBIT_APP - [OPTIONAL, if not set hawkbit-update-server is used] the application to be build. Currently, there is just hawkbit-update-server but in future, if hawkBit is split to micro-services, there could be different micro-service apps.
- HAWKBIT_VERSION - [OPTIONAL, if not set a default, should be the last officially released version, is used] the application version
- CONTAINER_PORT - [OPTIONAL, if not set 8080 is used] on which the app opens the http server (if available)
- MARIADB_DRIVER_VERSION (mysql flavours only!) - [OPTIONAL, if not set a default is used] the version of MariaDB connector to be used
Additionally, tge development builds shall be started with docker build context the local maven repository
Standard flavour could be build, for example, with (fixed version 0.4.1 is just an example):
docker build --build-arg HAWKBIT_APP=hawkbit-update-server --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1 . -f Dockerfile
or just by:
docker build --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1 .
having that docker uses by default Dockerfile and the hawkbit-update-server is the default HAWKBIT_APP.
To build standard development docker images, e.g. snapshot based, you could use something like:
docker build -t hawkbit_update_server:0-SNAPSHOT -f Dockerfile_dev ~/.m2/repository
Note that here you have to use your maven repository containing the hawkBit app as docker build context, in the example case ~/.m2/repository
Mysql flavour could be build, for example, with:
docker build --build-arg HAWKBIT_APP=hawkbit-update-server --build-arg HAWKBIT_VERSION=0.4.1 -t hawkbit_update_server:0.4.1-mysql . -f Dockerfile-mysql
or just by:
docker build --build-arg -t hawkbit_update_server:0.4.1-mysql --build-arg HAWKBIT_VERSION=0.4.1 . -f Dockerfile-mysql
having that the hawkbit-update-server is the default HAWKBIT_APP.
To build development mysql docker images, e.g. snapshot based, you could use something like:
docker build -t hawkbit_update_server:0-SNAPSHOT-mysql -f Dockerfile_dev-mysql ~/.m2/repository
Note that here you have to use your maven repository containing the hawkBit app as docker build context, in the example case ~/.m2/repository