Sign inSign up

bwdesigngroup/ignition-docker

By bwdesigngroup

Updated 29 days ago

A pre-loaded Ignition docker container with convenience features for rapid development

Image
5

10K+

bwdesigngroup/ignition-docker repository overview

Design Group Template Image

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

File Access

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 PathEnvironment Variable
/usr/local/bin/ignition/data/projectsSYMLINK_PROJECTS
/usr/local/bin/ignition/data/modules/com.inductiveautomation.perspectiveSYMLINK_THEMES
/usr/local/bin/ignition/data/logback.xmlSYMLINK_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

Note for Windows/Linux Users

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.

Customizations

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.

Environment Variables

This image also preloads the following environment variables by default:

Environment VariableMin-VersionValue
ACCEPT_IGNITION_EULA8.1.13Y
GATEWAY_ADMIN_USERNAME8.1.13admin
GATEWAY_ADMIN_PASSWORD8.1.13password
IGNITION_EDITION8.1.13standard
GATEWAY_MODULES_ENABLED8.1.17alarm-notification,allen-bradley-drivers,bacnet-driver,opc-ua,perspective,reporting,tag-historian,web-developer
IGNITION_UID8.1.131000
IGNITION_GID8.1.131000
PROJECT_SCAN_FREQUENCY8.1.1310
SYMLINK_LOGBACK8.1.13true
SYMLINK_PROJECTS8.1.13true
SYMLINK_THEMES8.1.13true
SYMLINK_GITIGNORE8.1.13true
ADDITIONAL_DATA_FOLDERS8.1.13""
logback.xml

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.

Additional Config Folders

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.

Secondary Images

This image also includes a few other images that are useful for development that involves third party igniiton modules being pre-installed.

ignition-docker-iiot

This image is a derivative of the inductiveautomation/ignition image, and includes the following modules pre-installed:

  • MQTT Transmission
  • MQTT Engine
  • MQTT Distributor

It 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.

ignition-docker-mes

This image is a derivative of the inductiveautomation/ignition image, and includes the following modules pre-installed:

  • WebService
  • Production
  • Settings and Changeover
  • Batch
  • SPC
  • Document Management
  • OEE Downtime
  • Track and Trace

It 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.

Third Party Modules

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.

Example docker-compose 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
Requests

If you have any requests for additional features, please feel free to open an issue or submit a pull request.

Shoutout

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.

Tag summary

Content type

Image

Digest

sha256:2fa5d02e4

Size

1.9 GB

Last updated

29 days ago

docker pull bwdesigngroup/ignition-docker