This solution provides a Development Container with a complete Ignition Module SDK development environment.
Features:
- 📦 Containerized with all required dependencies pre-installed.
- 🔌 VSCode Gradle and Java Extensions installed.
- ☕️ Ignition Sidecar Container with Debugging and Module Hot-loading enabled.
There are only a few prerequisites to get started with Ignition Module Development using this solution:
There is some automatic scaffolding done the very first time you open this solution in a Devcontainer with VSCode. If you want to customize some of the base scaffolding, modify the role defaults file at .devcontainer/roles/ignition-module-devcontainer/defaults/main.yml
.
Once you're happy with the values here, you can open the solution in a container by invoking the Command Palette (Ctrl-Shift-P (Windows/Linux) or Cmd-Shift-P (macOS)) and selecting Remote-Containers: Rebuild and Reopen in Container.
It will take a few minutes for the development container to build and open, followed by initialization of the Java and Gradle VSCode extensions. Once everything finally settles out, you should be able to start development on your module.
As part of this solution, a sidecar container with Ignition will be deployed. This Ignition Gateway is setup for remote debugging as well as loading of unsigned development modules. You can deploy your module to the running gateway by running the deployModl
task (either from the Gradle extension on the left-hand side of VSCode or by running ./gradlew deployModl
in the terminal).
Once completed, you can then inspect the Gateway Web UI by opening the forwarded port in the Ports section in VSCode. Hit Ctrl-` to toggle the view of the bottom window if necessary. You can open the forwarded port shown by clicking on the 🌐 icon.
Navigate to Config->Modules and observe that your module has been built and loaded into the running Ignition gateway. Note the URL above--this can be used to connect a Designer and conduct additional testing.
In order to stop the dev container simply close the VSCode window. The dev container and the associated Ignition sidecar will shutdown and be in a stopped state. Resuming from this state will be much quicker than the initial setup/provisioning process.