# Building Custom Ignition Gateway Docker Images

**URL:** <https://forum.inductiveautomation.com/t/building-custom-ignition-gateway-docker-images/111899>\
**Category:** Ignition\
**Tags:** docker\
**Created:** [November 3, 2025, 4:36pm UTC](https://forum.inductiveautomation.com/t/building-custom-ignition-gateway-docker-images/111899 "2025-11-03T16:36:23Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [November 3, 2025, 4:44pm UTC](https://forum.inductiveautomation.com/t/building-custom-ignition-gateway-docker-images/111899/2 "2025-11-03T16:44:31Z")

</div>

Don't mount into `/data/`, that's too broad. If you need to load 'gateway config', then mount the things you care about from `/data/config/resources/core/` (on your development system) into the container at the `/data/config/resources/external/` directory. The `external` directory is automatically scanned in on gateway startup and treated as an **immutable** set of resources that the gateway will not ever attempt to make changes to.

Some more context:

> [@Deployment modes override and rename to override with another type?](https://forum.inductiveautomation.com/t/deployment-modes-override-and-rename-to-override-with-another-type/111339/3):
>
> Deployment modes can change anything (though it's not necessarily recommended). If it helps, think of it as a single project inheritance tree. If you're in the dev mode, you're consuming external -\> system -\> core, then whatever dev defines, and then potentially overridden by anything local: Tree External External System System External-\>System Core Core System-\>Core Dev Dev Core-\>Dev Test Test Core-\>Test Prod Prod Core-\>Prod Local Local …

> [@Creating tag groups with the openapi endpoints in the gateway?](https://forum.inductiveautomation.com/t/creating-tag-groups-with-the-openapi-endpoints-in-the-gateway/111633/2):
>
> No, not through the rest API nor directly via scripting at present. It's very poorly documented at present because it's brand new to 8.3, but there is another possible solution to your issue; more on that later. Correct, the entire many file based configuration storage is new to 8.3; prior versions used a SQLite "internal database" to store all configuration and we did not support editing that database directly. For posterity, while you can do this, the address mapping feature is generally …

The project inheritance situation is different, but you should generally follow the same pattern:  
Mount `/data/projects/` (or even individual projects within that folder) - don't try to mount the entire `data/` directory, because Ignition needs to do certain things there related to the runtime that don't make sense to VCS/store outside of the container.

---

_[View the full topic](https://forum.inductiveautomation.com/t/building-custom-ignition-gateway-docker-images/111899)._
