You should consider using Container Modularity, avoiding Application Data, avoiding any extra modules, and adopting an Appropriate Base. Multi-stage builds are a recently updated feature that requires at least Docker 17.05 on both the daemon and the client. Those who are willing to improve Dockerfiles while making them comprehensible and manageable would benefit from multi-stage builds.