These build rules, of course, only explain to bazel how the ebook is to be built. The actual workhorses for building are Docker, pandoc, calibre, LaTeX, Graphviz, Asymptote, drawtiming and PlantUML.
These software packages are quite complex, and their installation can also be quite challenging. As I wanted to work around that complication, I devised a way to package all this software into a buildenv container and then invoke each in a special command for each action inside a custom docker container.
This means, if you can ensure that your computer has
docker
and bazel
installed, you don’t need to
worry about installing any other additional software! Everything else,
bazel
will pull for you from the Internet.
I am kind of proud of the way this was done, and you can see some more detail in the script docker_run.sh.