# Setting up Ignition Dev/Test Environments with Docker

**URL:** <https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691>\
**Category:** Ignition\
**Created:** [October 23, 2024, 8:02pm UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691 "2024-10-23T20:02:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Asjal\_Ahmad](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Asjal\_Ahmad](https://forum.inductiveautomation.com/u/Asjal_Ahmad)\
**Post date:** [October 23, 2024, 8:02pm UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691/1 "2024-10-23T20:02:41Z")

</div>

I'm running Ignition in production on an AWS EC2 instance with connected remote ignition gateways and want to set up development and test environments using Docker. I also have a PostgreSQL database on AWS. I have basic Docker knowledge but would appreciate some guidance or direction on:

- best practices for this setup
- steps to properly configure SSL and gateway network
- recommended directory structure

---

<div class="post-metadata">

**Author:** ![Matrix\_Engineering](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matrix_engineering/32/19781_2.png) [@Matrix\_Engineering](https://forum.inductiveautomation.com/u/Matrix_Engineering)\
**Post date:** [October 23, 2024, 8:23pm UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691/2 "2024-10-23T20:23:23Z")

</div>

> **[Ignition with Docker Course at Inductive University](https://www.inductiveuniversity.com/courses/elective-studies/ignition-with-docker)**
>
> Follow along in a guided walkthrough of Ignition with Docker. These topics will familiarize you with Docker concepts and we'll learn how to apply them with Ignition.

---

<div class="post-metadata">

**Author:** ![diamond](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@diamond](https://forum.inductiveautomation.com/u/diamond)\
**Post date:** [October 24, 2024, 5:54pm UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691/3 "2024-10-24T17:54:59Z")

</div>

Wait 2 months until v8.3

---

<div class="post-metadata">

**Author:** ![Asjal\_Ahmad](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Asjal\_Ahmad](https://forum.inductiveautomation.com/u/Asjal_Ahmad)\
**Post date:** [October 24, 2024, 6:11pm UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691/4 "2024-10-24T18:11:58Z")

</div>

are they adding containerization features?

---

<div class="post-metadata">

**Author:** ![Ahmed\_Alsaadi](https://avatars.discourse-cdn.com/v4/letter/a/6a8cbe/32.png) [@Ahmed\_Alsaadi](https://forum.inductiveautomation.com/u/Ahmed_Alsaadi)\
**Post date:** [October 25, 2024, 12:48am UTC](https://forum.inductiveautomation.com/t/setting-up-ignition-dev-test-environments-with-docker/97691/5 "2024-10-25T00:48:28Z")

</div>

You can use a docker compose file to make the ignition container with named volumes. Then use certbot to generate SSL, you'll need the cerbot rootCA to make the pfx file: [Chains of Trust - Let's Encrypt](https://letsencrypt.org/certificates/)

once you have everything you can use openssl pkcs12 to convert the certbot SSL files into the PFX file, and copy that into the ignition webserver directory  
(inside the container).

```sudo
sudo cat $CERT_DIR/fullchain.pem $CERT_DIR/isrgrootx1.pem > $CERT_DIR/bundle.pem

# Convert the initial certificates to PKCS#12
openssl pkcs12 -export -out $PFX_FILE -inkey $CERT_DIR/privkey.pem -in $CERT_DIR/bundle.pem -passout pass:$PFX_PASSWORD -name $KEYSTORE_ALIAS

sudo docker cp $PFX_FILE ignition:$IGNITION_GW_DIR/webserver

```

Then run  
`sudo docker exec -it --user root ignition $IGNITION_GW_DIR/gwcmd.sh --reloadks`

to reload the keystore
