Skip to main content
Version: 8.3 Beta 🚧

Docker Image

💡Have feedback for this page? Let us know on the IA Forum.


The Ignition Platform offers a container image for use on popular container runtimes such as Docker. You can find the image on Docker Hub at https://hub.docker.com/r/inductiveautomation/ignition. Our official image is a Linux container, based on Ubuntu Linux.

Ignition's Docker Image build is multi-architecture and supports linux/amd64, linux/arm64, and linux/arm/v7. Users can docker pull inductiveautomation/ignition and get an image that automatically matches their system architecture.

Getting Started

To get started with Ignition running as a container, you'll need a container runtime. Docker Desktop, available for Windows and macOS, includes both the Docker Engine container runtime as well as container tooling and supporting tools such as Docker Compose. If you are running Linux, you'll need to download and install the container runtime and tools such as Docker Compose individually. Guidance for the installation and configuration of Docker (on all platforms) are available here: Get Docker

Configuration

Various aspects of the Ignition Gateway can be configured through the use of either command-line arguments to the container or environment variables. This section will detail the available configuration options and how best to use them.

Environment Variables

The available environment variables can either accept explicit values or load the target values from a file. Specifying any of the environment variables below with a _FILE suffix will direct the system to take that environment variable value as a path to a file containing the value of interest. This is useful for secrets management systems when you want to keep the values out of the process environment, where individuals with access to docker inspect <container> might be able to see the values.

note

Some of the variable descriptions below make use of a # character. In these cases, you can specify the same variables multiple times by replacing the # character with a new number for each use.

GATEWAY_NETWORK_0_HOST=1.2.3.4
GATEWAY_NETWORK_0_PORT=8088
GATEWAY_NETWORK_0_DESCRIPTION="For tag server"

GATEWAY_NETWORK_1_HOST=5.6.7.8
GATEWAY_NETWORK_1_PORT=8089
GATEWAY_NETWORK_1_DESCRIPTION="For edge server"

The table below describes the environment variables exclusive to Docker. For a full list of environment variables supported by the Ignition platform, see the Platform Environment Variables reference page.

Environment VariableDescription
GATEWAY_RESTORE_DISABLEDSet to true to have the restored gwbk disabled on startup.
IGNITION_UIDNumeric user ID for the target user. Passing this variable and IGNITION_GID allows Ignition to run within a container as an ignition user rather than as the root user. When set, the entrypoint will automatically update file ownerships for the Ignition installation on startup to match the target user prior to stepping down from the root user to launch the Gateway.
IGNITION_GIDNumeric group ID for the target user. Passing this variable and IGNITION_UID allows Ignition to run within a container as an ignition user rather than as the root user. When set, the entrypoint will automatically update file ownerships for the Ignition installation on startup to match the target user prior to stepping down from the root user to launch the Gateway.

Module Identifiers Table

Module identifiers are used by Ignition to search and find modules. The module identifiers listed below represent the modules that are built-in with the container image. These modules are saved in the /usr/local/bin/ignition/user-lib/modules folder. Any third party modules installed through the Gateway will be saved in the /usr/local/bin/ignition/data/local/modl folder. This third party folder location is defined by the ignition.gateway.externalModulesFolder system property.

Legacy Module Identifiers

Ignition will still include the module identifiers listed in version 8.1 when attempting a search, but it is recommended to use the full module identifiers listed in the table below.

Module IdentifierModule Filename
com.inductiveautomation.alarm-notificationAlarm Notification-module.modl
com.inductiveautomation.opcua.drivers.ablegacyAllen-Bradley Drivers-module.modl
com.inductiveautomation.opcua.drivers.bacnetBACnet Driver-module.modl
com.inductiveautomation.opcua.drivers.dnp3DNP3-Driver.modl
com.inductiveautomation.opcua.drivers.dnp3v2DNP3-Driver-v2.modl
com.inductiveautomation.eamEnterprise Administration-module.modl
com.inductiveautomation.eventstreamEventStream-module.modl
com.inductiveautomation.historianHistorian-module.modl
com.inductiveautomation.opcua.drivers.iec61850IEC 61850 Driver-module.modl
com.inductiveautomation.connectors.kafkaKafka Connector-module.modl
com.inductiveautomation.opcua.drivers.logixLogix Driver-module.modl
com.inductiveautomation.opcua.drivers.micro800Micro800 Driver-module.modl
com.inductiveautomation.opcua.drivers.mitsubishiMitsubishi-Driver.modl
com.inductiveautomation.opcua.drivers.modbusModbus Driver v2-module.modl
com.inductiveautomation.connectors.mongodbMongoDB Connector-module.modl
com.inductiveautomation.opcua.drivers.omronOmron-Driver.modl
com.inductiveautomation.opcuaOPC-UA-module.modl
com.inductiveautomation.perspectivePerspective-module.modl
com.inductiveautomation.reportingReporting-module.modl
com.inductiveautomation.sfcSFC-module.modl
com.inductiveautomation.opcua.drivers.siemensSiemens Drivers-module.modl
com.inductiveautomation.opcua.drivers.siemens-symbolicSiemens S7 Symbolic Driver-module.modl
com.inductiveautomation.sms-notificationSMS Notification-module.modl
com.inductiveautomation.sqlbridgeSQL Bridge-module.modl
com.inductiveautomation.historian.sqlSQL Historian-module.modl
com.inductiveautomation.symbol-factorySymbol Factory-module.modl
com.inductiveautomation.opcua.drivers.tcpudpUDP and TCP Drivers-module.modl
com.inductiveautomation.visionVision-module.modl
com.inductiveautomation.phone-notificationVoice Notification-module.modl
com.inductiveautomation.webdevWeb Developer Module.modl

Runtime Arguments

The following options and flags are accepted by the container as runtime arguments. Options should be followed by a value, while flags are stand-alone. Note that these arguments are passed after the image name in a Docker Run statement.

Options

OptionRequiresArguments
-nStringGateway name to be applied to the Ignition Gateway on startup
-aStringPublic web address*
-hIntegerPublic HTTP port*
-sIntegerPublic HTTPS port*
-mIntegerMax memory for JVM
-rStringPath to Gateway Backup for Automated Restore

* Specify Public address/HTTP/HTTPS ports together, all three must be specified

Flags

FlagDescription
-dDebug mode, applicable to development and attaches port 8000 for remote JVM debugging. Note that port 8000 may need to be published on the container.

Supplemental JVM and Wrapper Arguments

You can also specify JVM and Java Service Wrapper arguments to your Docker containers runtime arguments by adding a double-hyphen to delimit these arguments from the other runtime arguments listed above. Wrapper arguments (starting with wrapper.* ) will be merged and JVM arguments will be added to those specified in the ignition.conf file. Refer to Customizing JVM/Wrapper/Gateway Arguments on Container Launch for an example.

Leased Licensing Termination Settings

A couple parameters to be aware of are the Leased Licensing Parameters. Since leased activation license session termination on shutdown is necessary to ensure the session is returned to the activation server, these allow you to modify your session termination settings.

Gateway Arguments

The image also supports the use of Gateway arguments, allowing you to modify the gateway.xml file when launching a container. Like JVM and wrapper arguments, Gateway arguments must be specified after a double-hyphen. Only entries in the file that follow the pattern of gateway.# can be modified in this way.

Logging Settings

Unlike the non-containerized version of Ignition, the Ignition container image is designed to emit logs to stdout (“standard out”) so they can be leveraged by various logging drivers in the container engine. This is done by directing what would normally be stored in the logs/wrapper.log file to stdout. As a result, Ignition itself doesn’t control rotating the wrapper.log based on size, which can result in container logs growing unbounded. You can configure the default logging driver to constrain maximum log sizes. Reference the Docker logging configuration page to specify logger size limits.

Licensing

The Inductive Automation software contained in this Docker container image is licensed under the terms of the Inductive Automation Software License Agreement.

By passing the environment variable value ACCEPT_IGNITION_EULA=Y, you agree that your use of Inductive Automation software running in this Docker container image is governed by the terms of the Inductive Automation Software License Agreement.

All third party software (whether open or closed) running in this Docker container image is licensed as indicated in this Docker Hub “License” section or in the container itself, usually as a NOTICE or LICENSE file. You agree to comply with any relevant licenses for third party software contained in this Docker container image.

Examples

Refer to the Docker Image Examples page to learn more about how to run and configure the Ignition Docker image, as well as some standard best practices.