Building an app needs compilers and build tools, but running it does not, and shipping them makes images large and less secure. A multi-stage build compiles in one stage and copies only the output into a small final image. Reach for it with Java, Go or frontend builds, where the build tools are much bigger than the result. If your app needs no build step, a single stage with a slim base image is usually enough.