There's also BlueBuild [1] which abstracts the process of building your own images away further into yaml configurations.
It takes away a tad bit of the direct control of the process, but covers the majority of things you would want to configure.
[1] https://blue-build.org/