Я видел вариант, когда внутри докера создается докер, который собирает jar, а потом этот внутренний докер удаляется.
Apereo CAS так работает.
Удобно ли это? Не особо, на самом деле, пушо хочется при старте докера иметь готовое изделие, а не полуфабрикат, который будет еще сам себя собирать полчаса, из которых 20 минут он будет выкачивать тулчейн, который раз в 10 больше готового jar