# Gateway Deployment Mode

**URL:** <https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466>\
**Category:** Ignition\
**Created:** [March 12, 2026, 4:12pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466 "2026-03-12T16:12:49Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![cvanremoortel](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@cvanremoortel](https://forum.inductiveautomation.com/u/cvanremoortel)\
**Post date:** [March 12, 2026, 4:12pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/1 "2026-03-12T16:12:49Z")

</div>

We are trying to use deployment modes to program against a gateway copy of a production gateway. I have set up a docker container for the local copy, added a Dev Mode, and successfully edited the ignition.conf file to change modes. What I did not realize is if I take a gateway backup of the Dev server and restore it on the production server the production server will start in Dev mode since the ignition.conf file is part of the gateway backup.

How can I start the Docker gateway in Dev mode without editing the ignition.conf file? Is there a way to specify mode in the docker compose file or command that starts ignition? Specifying the gateway mode in the ignition.conf file is not he best way to change the mode.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [March 12, 2026, 4:15pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/2 "2026-03-12T16:15:11Z")

</div>

See [Docker Image | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/platform/docker-image#customizing-jvmwrappergateway-arguments-on-container-launch), I think this is what you want.

---

<div class="post-metadata">

**Author:** ![cvanremoortel](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@cvanremoortel](https://forum.inductiveautomation.com/u/cvanremoortel)\
**Post date:** [March 12, 2026, 4:22pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/3 "2026-03-12T16:22:52Z")

</div>

Here is the command portion of the compose.yaml file:

```python
    command: >
      -n sweet-eddies
      -m ${GATEWAY_MAX_MEMORY:-512}

```

I changed it to this and Ignition would not start:

```python
    command: >
      -n sweet-eddies
      -m ${GATEWAY_MAX_MEMORY:-512}
      -Dignition.config.mode=Dev

```

---

<div class="post-metadata">

**Author:** ![cvanremoortel](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@cvanremoortel](https://forum.inductiveautomation.com/u/cvanremoortel)\
**Post date:** [March 12, 2026, 4:29pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/4 "2026-03-12T16:29:44Z")

</div>

This does work:

```python
    command: >
      -n sweet-eddies
      -m ${GATEWAY_MAX_MEMORY:-512}
      --
      wrapper.java.initmemory=512
      -Dignition.config.mode=Dev

```

Not sure why… @Kevin.Herron thanks for pointing me in the right direction.

---

<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:** [March 12, 2026, 4:31pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/5 "2026-03-12T16:31:57Z")

</div>

Arguments before the double hyphen are part of the `docker run` command. Arguments after are passed in to the container entrypoint itself.

---

<div class="post-metadata">

**Author:** ![cvanremoortel](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@cvanremoortel](https://forum.inductiveautomation.com/u/cvanremoortel)\
**Post date:** [March 12, 2026, 4:43pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/6 "2026-03-12T16:43:49Z")

</div>

So I do not need the wrapper.java.initmemory=512 line. I would be great if there was an environment variable you could set instead. Thanks!!

---

<div class="post-metadata">

**Author:** ![cvanremoortel](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@cvanremoortel](https://forum.inductiveautomation.com/u/cvanremoortel)\
**Post date:** [March 12, 2026, 5:52pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/7 "2026-03-12T17:52:35Z")

</div>

Is it possible to edit the service start command in Windows to do the same thing?

---

<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:** [March 12, 2026, 5:53pm UTC](https://forum.inductiveautomation.com/t/gateway-deployment-mode/114466/8 "2026-03-12T17:53:40Z")

</div>

Not exactly, but there's a different way to solve the same goal:

> [@Disable devices in Gateway Startup Script (v8.3.0)](https://forum.inductiveautomation.com/t/disable-devices-in-gateway-startup-script-v8-3-0/111599/6):
>
> Setting the deployment mode via an environment variable is not yet supported, you've got to supply the Java system property via a JVM argument, -Dignition.config.mode=yourdeploymentmode. As @paul-griffith mentions, we're going to be doing additional refinements in this area. However, I've got some guidance that might be useful in the meantime. Currently, at time of writing w/ 8.3.0, if you add the deployment mode arg explicitly to your data/ignition.conf, it will be within any gateway backup …
