>>436
マルチステージビルドとかしらんの?

一つのDockerfileに
 FROM as java-x.y.x
  …
 FROM as ruby-x.y.x
  …
 FROM as python-x.y.x
  …
とか書いてあれば、別のDockerfileに同じことが書いてある時に共通化されるんだよ

そしてそのDockerfileの下に
 FROM …
 COPY --from=java-x.y.z /opt/java /opt/java
 COPY --from=ruby-x.y.z /opt/ruby /opt/ruby
 COPY --from=python-x.y.z /opt/python /opt/python
と書いてあれば、単にファイルをコピーするだけ
ファイルコピーなんだからDinD(笑)とかで
ファイル差し替えとかいうのとやってることは何も変わらん

ベースとなるイメージは共通で使って
実際に動かすイメージだけビルド→終わったら破棄すれば容量食わないし
元となるイメージは削除せずに使い回すのだからビルドの時間もかからん