I am trying to start a docker container of kcollins/ignition image with MQTT-Engine as third party module.
This is my run command:
docker run -p 8088:8088 -v ~/ignition/modules:/modules -e GATEWAY_ADMIN_PASSWORD=password -d kcollins/ignition:latest
The bind mount seems to work: If I enter the container via bash I can see that “MQTT-Engine-signed.modl” is present in /modules.
However the module does not appear on the gateway config page or on the modules page. Gateway restart did not help either.
Did anyone here get this to work?
Ok… I got it to work.
A gatewaybackup - with the required modules allready installed - bound to /restore.gwbk on the container made it work. Modules are available on first start of the container.
Yes, more specifically, the very first startup of the gateway will not include third-party modules, as the registration has to be conducted against an existing
data/db/config.idb internal database (which doesn’t exist on a fresh launch). It is sufficient to map in an empty gateway backup (no need to worry about having one with any special configuration).
@kcollins1 or @Kevin.Collins
Are there any plans to implement this more natively in the official image? If it was in the official image it wouldn't require the end-implementer restarting their gateway once, because the official entry point could just do it when its done with the auto-commissioning.
In the script I supplied years ago that showed how to inject module certificate and license approvals into config.idb, I also showed how I did the commissioning start with no modules present at all. The script would wait for the gateway status to get past commissioning, then shut down, add all the modules, and restart.