I'm so glad the use-case will work -- and sounds somewhat normative.
The program and the data are distinct things - which is why you can upgrade from say 9.5.1 to 9.5.3 by simply updating the program. Heck, a simple reboot of a typical server causes a new program instance to launch that is unique from the one that was previously running.
The main concern is avoiding concurrency. The program is designed to be able to do that in a single-machine setup but if you go introducing other "clone" machines there is a greater chance of breaking things. The software isn't really setup to do what you are thinking - its designed to be a persistent server that would exist independent of any particular instance of your application and to which your application would connect over jdbc/libpq. So its up to you to ensure that you set things up to conform to its runtime expectations.
David J.