New and Improved StackStorm Docker Images!

August 30, 2017
by Warren Van Winckel

Tagged Images

For a little while now, the stackstorm/stackstorm docker image has been tagged with the version of StackStorm that comes pre-installed in the image. Now, you can pin your installation to a specific release of StackStorm! Images tagged with “latest” contain the most recent StackStorm release at the time it was tagged.

The stackstorm/stackstorm:2.4.0 image will always contain the 2.4.0 release of stackstorm. The previous release, 2.3.2, is available at stackstorm/stackstorm:2.3.2. We never again update stackstorm/stackstorm:2.3.2 after 2.4.0 is released. Any feature changes to st2-docker will only ever apply to the most recent stackstorm image.

New Images

I’m proud to announce that two community members have each contributed a new image to the st2-docker repository:

Thanks to @mab27, we have a Docker image called stackstorm-all that contains StackStorm and all dependent services. This may be required when you are only able to run one container, for example, in a CI test environment.

In addition, @shusugmt has contributed the stackstorm-1ppc (stands for “one process per container) Docker image, which allows you to run one service per container – a Docker best practice, following 12FA principles. Please note that in the next day or two, this image will be merged with the base stackstorm/stackstorm image. If you want to take it for a spin in the meantime, an example docker-compose.yml is in runtime/stackstorm-1ppc which uses this 1ppc image.

We have done some early testing of these images on Kubernetes, and have seen good results thus far. You’ll find example manifests under the runtime/kubernetes-1ppc directory. Using a kubernetes “Deployment”, each st2 service can be easily HA enabled by configuring number of replicas to >= 2. For example, you can increase number of Pods which run st2actionrunner by either just using kubectl scale command against st2actionrunner or adjusting the number of replicas in manifest yaml file and use kubectl apply; then all actions are load-balanced among those Pods. (Note: Some components like st2rulesengine or st2sensorcontainer need special care in HA setup, but we don’t describe further details here. See HA section of official doc.)

Currently, this is just a proof of concept but we believe Kubernetes provides an attractive option for those who require StackStorm to run in an HA environment. We greatly appreciate and encourage any PR’s with improvements.

Roadmap

In the next few months, we aim to:

  • Solidify the docs and provide at least one good example of how to deploy using docker-compose, including best practices on how to pull in packs, configs and SSL certs, and how to perform upgrades.
  • Make a list of what is required to move from “eval, light production” to “full production, scale out” for transparency and so others can help out.

Conclusion

We’re really looking forward to hearing stories about what you’re all doing with StackStorm – in particular, with these two new images. As always, find us on our #docker channel on Slack, and please submit issues or PR’s.