A pre-loaded Ignition docker container with convenience features for rapid development
10K+
The purpose of this image is to provide a quick way to spin up docker containers that include some necessary creature comforts for version control, theme management, and easy interaction with the required file system components for an Ignition gateway.
This image is automatically built for versions 8.1.13-8.1.48, new versions will be updated, but any features are subject to change with later versions. Upon a new pull request, if a valid build file is modified, it will trigger a build test pipeline that verifies the image still operates as expected.
If using a windows device, you will want to Set up WSL
This custom build creates a symlink in the /workdir directory to a few of the components in Ignition's data directory. This allows you to easily access the files on the host system, and simplifies the necessary .gitignore for a project. The following items are symlinked by default, and these are the environment variables that enable them:
| Symlink Path | Environment Variable |
|---|---|
/usr/local/bin/ignition/data/projects | SYMLINK_PROJECTS |
/usr/local/bin/ignition/data/modules/com.inductiveautomation.perspective | SYMLINK_THEMES |
/usr/local/bin/ignition/data/logback.xml | SYMLINK_LOGBACK |
To disable one of the symlinks, set the environment variable to false. For example, to disable the symlink to the projects directory, set SYMLINK_PROJECTS=false
In order for the symlinks to work, you must first create an empty folder adjacent to the docker-compose.yml file that has the same name as the desired bind mount. On Windows/Linux docker will automatically do everything as root, so without doing this the created file will be owned by root:root instead of user:user. On a Mac, this is not necessary, MacOS ftw.
This is a derived image of the inductiveautomation/ignition image. Please see the Ignition Docker Hub for more information on the base image. This image should be able to take all arguments provided by the base image, but has not been tested.
This image also preloads the following environment variables by default:
| Environment Variable | Min-Version | Value |
|---|---|---|
ACCEPT_IGNITION_EULA | 8.1.13 | Y |
GATEWAY_ADMIN_USERNAME | 8.1.13 | admin |
GATEWAY_ADMIN_PASSWORD | 8.1.13 | password |
IGNITION_EDITION | 8.1.13 | standard |
GATEWAY_MODULES_ENABLED | 8.1.17 | alarm-notification,allen-bradley-drivers,bacnet-driver,opc-ua,perspective,reporting,tag-historian,web-developer |
IGNITION_UID | 8.1.13 | 1000 |
IGNITION_GID | 8.1.13 | 1000 |
PROJECT_SCAN_FREQUENCY | 8.1.13 | 10 |
SYMLINK_LOGBACK | 8.1.13 | true |
SYMLINK_PROJECTS | 8.1.13 | true |
SYMLINK_THEMES | 8.1.13 | true |
SYMLINK_GITIGNORE | 8.1.13 | true |
ADDITIONAL_DATA_FOLDERS | 8.1.13 | "" |
The included logback.xml file is a default file, it is just mapped into the working directory so that it can be customized if desired.
Added an environment variable that allows the user to map application config files located in the data directory into the /workdir. This is customized by providing a comma separated list of folders in a string to the environment variable. For example, to map the data/notifications and data/configs folders, set the environment variable ADDITIONAL_DATA_FOLDERS=notifications,configs to the docker-compose.yml file.
This image also includes a few other images that are useful for development that involves third party igniiton modules being pre-installed.
This image is a derivative of the inductiveautomation/ignition image, and includes the following modules pre-installed:
MQTT TransmissionMQTT EngineMQTT DistributorIt takes the IIOT_MODULES_ENABLED environment variable that is a comma separated list of modules to enable. For example, to enable all three modules, set the environment variable IIOT_MODULES_ENABLED=mqtt-transmission,mqtt-engine,mqtt-distributor to the docker-compose.yml file. This image only supports version 8.1.36, if a different version is needed, please open an issue.
This image is a derivative of the inductiveautomation/ignition image, and includes the following modules pre-installed:
WebServiceProductionSettings and ChangeoverBatchSPCDocument ManagementOEE DowntimeTrack and TraceIt takes the MES_MODULES_ENABLED environment variable that is a comma separated list of modules to enable. For example, to enable the Settings and Changeover and Batch Procedure modules, set the environment variable MES_MODULES_ENABLED=production,batch to the docker-compose.yml file. This image only supports version 8.1.35, if a different version is needed, please open an issue.
Any additional modules outside of the native ignition ones that want to be added can be mapped into the /modules folder in the container. This is done by adding the following to the volumes section of the docker-compose.yml file:
volumes:
- ./my-local-modules:/modules
Due to the way module onboarding works, in order for it to take effect, you must restart the container after its initial creation. This can be done by running docker-compose restart from the directory containing the docker-compose.yml file.
services:
gateway:
image: bwdesigngroup/ignition-docker:8.1.48
ports:
- 80:8088
# # In order to use this volume, you must first create the directory `data-folder` next to the docker-compose.yml file
# volumes:
# - ./data-folder:/workdir
# environment:
# - ADDITIONAL_DATA_FOLDERS=one-folder,other-folder
If you have any requests for additional features, please feel free to open an issue or submit a pull request.
A big shoutout to Inductive Automation for providing the base image and Ignition software, and Kevin Collins for the original inspiration and support for this image.
Content type
Image
Digest
sha256:2fa5d02e4…
Size
1.9 GB
Last updated
29 days ago
docker pull bwdesigngroup/ignition-docker