Setting up Ignition Dev/Test Environments with Docker

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

Wait 2 months until v8.3

are they adding containerization features?

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

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