A while back I wanted to make a hermetic environment for repeatably running Docker tooling.
The results are here: https://github.com/filmil/vivado-docker/
At this time, it’s only able to run the GUI version of the tool. I intend to make it run specific tools when they are needed.